Security
Headlines
HeadlinesLatestCVEs

Headline

CVE-2022-0252: Changeset 2659032 – WordPress Plugin Repository

The GiveWP WordPress plugin before 2.17.3 does not escape the json parameter before outputting it back in an attribute in the Import admin dashboard, leading to a Reflected Cross-Site Scripting

CVE
#xss#vulnerability#web#js
  • give/assets/icon-128x128.jpg

    • Property svn:mime-type changed from application/octet-stream to image/jpeg
  • give/assets/icon-256x256.jpg

    • Property svn:mime-type changed from application/octet-stream to image/jpeg
  • give/tags/2.17.3/assets/dist/mix-manifest.json

    r2632392

    r2659032

35

35

    "/css/admin-widgets.css": "/css/admin-widgets.css",

36

36

    "/css/plugin-deactivation-survey.css": "/css/plugin-deactivation-survey.css",

37

 

    "/vendor/tecnickcom/tcpdf/fonts/CODE2000.TTF": "/vendor/tecnickcom/tcpdf/fonts/CODE2000.TTF",

38

 

    "/vendor/tecnickcom/tcpdf/fonts/code2000.ctg.z": "/vendor/tecnickcom/tcpdf/fonts/code2000.ctg.z",

39

 

    "/vendor/tecnickcom/tcpdf/fonts/code2000.php": "/vendor/tecnickcom/tcpdf/fonts/code2000.php",

40

 

    "/vendor/tecnickcom/tcpdf/fonts/code2000.z": "/vendor/tecnickcom/tcpdf/fonts/code2000.z",

41

 

    "/vendor/tecnickcom/tcpdf/fonts/code2000.z.cpgz": "/vendor/tecnickcom/tcpdf/fonts/code2000.z.cpgz",

42

 

    "/vendor/tecnickcom/tcpdf/fonts/dejavusans.ctg.z": "/vendor/tecnickcom/tcpdf/fonts/dejavusans.ctg.z",

43

 

    "/vendor/tecnickcom/tcpdf/fonts/dejavusans.php": "/vendor/tecnickcom/tcpdf/fonts/dejavusans.php",

44

 

    "/vendor/tecnickcom/tcpdf/fonts/dejavusans.z": "/vendor/tecnickcom/tcpdf/fonts/dejavusans.z",

45

 

    "/vendor/tecnickcom/tcpdf/fonts/helvetica.php": "/vendor/tecnickcom/tcpdf/fonts/helvetica.php",

46

 

    "/vendor/tecnickcom/tcpdf/fonts/helveticab.php": "/vendor/tecnickcom/tcpdf/fonts/helveticab.php",

47

 

    "/vendor/tecnickcom/tcpdf/fonts/helveticabi.php": "/vendor/tecnickcom/tcpdf/fonts/helveticabi.php",

48

 

    "/vendor/tecnickcom/tcpdf/fonts/helveticai.php": "/vendor/tecnickcom/tcpdf/fonts/helveticai.php",

49

37

    "/images/ach.png": "/images/ach.png",

50

38

    "/images/addons-admin-page-decor-1.png": "/images/addons-admin-page-decor-1.png",
  • give/tags/2.17.3/give.php

    r2634415

    r2659032

6

6

 \* Author: GiveWP

7

7

 \* Author URI: https://givewp.com/

8

 

 \* Version: 2.17.1

 

8

 \* Version: 2.17.3

9

9

 \* Requires at least: 4.9

10

10

 \* Requires PHP: 5.6

…

…

 

281

281

        // Plugin version.

282

282

        if ( ! defined('GIVE\_VERSION')) {

283

 

            define('GIVE\_VERSION', '2.17.1');

 

283

            define('GIVE\_VERSION', '2.17.3');

284

284

        }

285

285
  • give/tags/2.17.3/includes/admin/forms/dashboard-columns.php

    r2407987

    r2659032

492

492

    <div id="give-forms-advanced-filter" class="give-filters">

493

493

        <div class="give-filter give-filter-search">

494

 

            <input type="text" id="give-forms-search-input" placeholder="<?php \_e( 'Form Name or ID', 'give' ); ?>" name="s" value="<?php echo $search; ?>">

 

494

            <input type="text" id="give-forms-search-input" placeholder="<?php \_e( 'Form Name or ID', 'give' ); ?>" name="s" value="<?php echo esc\_attr( $search ); ?>">

495

495

            <?php

496

496

            submit\_button(
  • give/tags/2.17.3/includes/admin/tools/import/class-give-import-core-settings.php

    r2271154

    r2659032

363

363

                    <div class="give-field-wrap">

364

364

                        <label for="json">

365

 

                            <input type="file" name="json" class="give-upload-json-file" value="<?php echo $json; ?>"

 

365

                            <input type="file" name="json" class="give-upload-json-file" value="<?php echo esc\_attr($json); ?>"

366

366

                                   accept=".json">

367

367

                            <p class="give-field-description"><?php esc\_html\_e( 'The file type must be JSON.', 'give' ); ?></p>
  • give/tags/2.17.3/includes/forms/template.php

    r2620345

    r2659032

1477

1477

function give\_get\_login\_fields( $form\_id ) {

1478

1478

1479

 

    $form\_id            = isset( $\_POST\['form\_id'\] ) ? $\_POST\['form\_id'\] : $form\_id;

 

1479

    $form\_id            = isset( $\_POST\['form\_id'\] ) ? give\_clean( $\_POST\['form\_id'\] ) : $form\_id;

1480

1480

    $show\_register\_form = give\_show\_login\_register\_option( $form\_id );

1481

1481

1482

1482

    ob\_start();

1483

1483

    ?>

1484

 

    <fieldset id="give-login-fields-<?php echo $form\_id; ?>">

 

1484

    <fieldset id="give-login-fields-<?php echo esc\_attr( $form\_id ); ?>">

1485

1485

        <legend>

1486

1486

            <?php

…

…

 

1520

1520

        ?>

1521

1521

        <div class="give-user-login-fields-container">

1522

 

            <div id="give-user-login-wrap-<?php echo $form\_id; ?>" class="form-row form-row-first form-row-responsive">

1523

 

                <label class="give-label" for="give-user-login-<?php echo $form\_id; ?>">

 

1522

            <div id="give-user-login-wrap-<?php echo esc\_attr( $form\_id ); ?>" class="form-row form-row-first form-row-responsive">

 

1523

                <label class="give-label" for="give-user-login-<?php echo esc\_attr( $form\_id ); ?>">

1524

1524

                    <?php \_e( 'Username or Email Address', 'give' ); ?>

1525

1525

                    <?php if ( give\_logged\_in\_only( $form\_id ) ) { ?>

…

…

 

1530

1530

                <input class="give-input<?php echo ( give\_logged\_in\_only( $form\_id ) ) ? ' required' : ''; ?>"

1531

1531

                       type="text"

1532

 

                       name="give\_user\_login" id="give-user-login-<?php echo $form\_id; ?>" value=""

 

1532

                       name="give\_user\_login" id="give-user-login-<?php echo esc\_attr( $form\_id ); ?>" value=""

1533

1533

                       placeholder="<?php \_e( 'Your username or email', 'give' ); ?>"<?php echo ( give\_logged\_in\_only( $form\_id ) ) ? ' required aria-required="true" ' : ''; ?>/>

1534

1534

            </div>

1535

1535

1536

 

            <div id="give-user-pass-wrap-<?php echo $form\_id; ?>"

 

1536

            <div id="give-user-pass-wrap-<?php echo esc\_attr( $form\_id ); ?>"

1537

1537

                 class="give\_login\_password form-row form-row-last form-row-responsive">

1538

 

                <label class="give-label" for="give-user-pass-<?php echo $form\_id; ?>">

 

1538

                <label class="give-label" for="give-user-pass-<?php echo esc\_attr( $form\_id ); ?>">

1539

1539

                    <?php \_e( 'Password', 'give' ); ?>

1540

1540

                    <?php if ( give\_logged\_in\_only( $form\_id ) ) { ?>

…

…

 

1543

1543

                </label>

1544

1544

                <input class="give-input<?php echo ( give\_logged\_in\_only( $form\_id ) ) ? ' required' : ''; ?>"

1545

 

                       type="password" name="give\_user\_pass" id="give-user-pass-<?php echo $form\_id; ?>"

 

1545

                       type="password" name="give\_user\_pass" id="give-user-pass-<?php echo esc\_attr( $form\_id ); ?>"

1546

1546

                       placeholder="<?php \_e( 'Your password', 'give' ); ?>"<?php echo ( give\_logged\_in\_only( $form\_id ) ) ? ' required aria-required="true" ' : ''; ?>/>

1547

1547

                <?php if ( give\_logged\_in\_only( $form\_id ) ) : ?>

…

…

 

1551

1551

        </div>

1552

1552

1553

 

        <div id="give-user-login-submit-<?php echo $form\_id; ?>" class="give-clearfix">

 

1553

        <div id="give-user-login-submit-<?php echo esc\_attr( $form\_id ); ?>" class="give-clearfix">

1554

1554

            <input type="submit" class="give-submit give-btn button" name="give\_login\_submit"

1555

1555

                   value="<?php \_e( 'Login', 'give' ); ?>"/>

…

…

 

1560

1560

            <?php } ?>

1561

1561

            <span class="give-loading-animation"></span>

1562

 

            <div id="give-forgot-password-wrap-<?php echo $form\_id; ?>" class="give\_login\_forgot\_password">

 

1562

            <div id="give-forgot-password-wrap-<?php echo esc\_attr( $form\_id ); ?>" class="give\_login\_forgot\_password">

1563

1563

                <span class="give-forgot-password ">

1564

1564

                    <a href="<?php echo wp\_lostpassword\_url(); ?>" target="\_blank"><?php \_e( 'Reset Password', 'give' ); ?></a>
  • give/tags/2.17.3/languages/give.pot

    r2634415

    r2659032

1

 

\# Copyright (C) 2021 GiveWP

 

1

\# Copyright (C) 2022 GiveWP

2

2

\# This file is distributed under the same license as the Give - Donation Plugin plugin.

3

3

msgid ""

4

4

msgstr ""

5

 

"Project-Id-Version: Give - Donation Plugin 2.17.1\\n"

 

5

"Project-Id-Version: Give - Donation Plugin 2.17.3\\n"

6

6

"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/givewp\\n"

7

7

"Last-Translator: FULL NAME <EMAIL@ADDRESS>\\n"

…

…

 

10

10

"Content-Type: text/plain; charset=UTF-8\\n"

11

11

"Content-Transfer-Encoding: 8bit\\n"

12

 

"POT-Creation-Date: 2021-11-23T23:44:43+00:00\\n"

 

12

"POT-Creation-Date: 2022-01-18T00:22:45+00:00\\n"

13

13

"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\\n"

14

14

"X-Generator: WP-CLI 2.5.0\\n"
  • give/tags/2.17.3/output.log

    r2634415

    r2659032

17

17

2a0fa75da19b: Pulling fs layer

18

18

07289ea6b918: Pulling fs layer

 

19

4612e05a72cf: Waiting

 

20

f1478d838f46: Waiting

19

21

c88517be8365: Waiting

20

22

142abe9b67c6: Waiting

…

…

 

22

24

2a0fa75da19b: Waiting

23

25

07289ea6b918: Waiting

24

 

4612e05a72cf: Waiting

25

 

f1478d838f46: Waiting

 

26

320f26ee9b1c: Verifying Checksum

 

27

320f26ee9b1c: Download complete

26

28

30e209609427: Verifying Checksum

27

29

30e209609427: Download complete

28

 

320f26ee9b1c: Verifying Checksum

29

 

320f26ee9b1c: Download complete

30

30

801bfaa63ef2: Verifying Checksum

31

 

801bfaa63ef2: Download complete

 

31

801bfaa63ef2: Pull complete

32

32

c88517be8365: Verifying Checksum

33

33

c88517be8365: Download complete

34

 

801bfaa63ef2: Pull complete

35

34

4612e05a72cf: Verifying Checksum

36

35

4612e05a72cf: Download complete

37

36

f1478d838f46: Verifying Checksum

38

37

f1478d838f46: Download complete

39

 

181891da1ea0: Verifying Checksum

 

38

30e209609427: Pull complete

 

39

142abe9b67c6: Verifying Checksum

 

40

142abe9b67c6: Download complete

40

41

181891da1ea0: Download complete

41

42

2a0fa75da19b: Verifying Checksum

42

43

2a0fa75da19b: Download complete

43

 

142abe9b67c6: Verifying Checksum

44

 

142abe9b67c6: Download complete

45

 

07289ea6b918: Verifying Checksum

46

 

07289ea6b918: Download complete

47

 

30e209609427: Pull complete

48

44

320f26ee9b1c: Pull complete

49

45

4612e05a72cf: Pull complete

50

46

f1478d838f46: Pull complete

 

47

07289ea6b918: Download complete

51

48

c88517be8365: Pull complete

52

49

142abe9b67c6: Pull complete
  • give/tags/2.17.3/readme.txt

    r2658954

    r2659032

4

4

Tags: donation, donate, recurring donations, fundraising, crowdfunding

5

5

Requires at least: 4.9

6

 

Tested up to: 5.9

 

6

Tested up to: 5.8

7

7

Requires PHP: 5.6

8

 

Stable tag: 2.17.2

 

8

Stable tag: 2.17.3

9

9

License: GPLv3

10

10

License URI: http://www.gnu.org/licenses/gpl-3.0.html

…

…

 

252

252

253

253

\== Changelog ==

 

254

\= 2.17.3: January 17th, 2022 =

 

255

\* Security: Minor XSS vulnerabilities, which require admin access to exploit, have been resolved

 

256

254

257

\= 2.17.2: December 28th, 2021 =

255

258

\* Fix: Only validate email settings that are not empty
  • give/tags/2.17.3/src/Email/GlobalSettingValidator.php

    r2634415

    r2659032

29

29

    /\*\*

30

30

     \* @since 2.17.1

 

31

     \* @since 2.17.2 Only filter value as unique array if set. Some settings do not need to be set, ie donation-receipt\_recipient.

31

32

     \*/

32

33

    public function validateSetting($value)

33

34

    {

34

 

        // Same unique email address for email recipients.

35

 

        $recipientEmails = array\_unique(array\_filter($value));

 

35

        if( ! empty( $value ) ) {

 

36

            // Same unique email address for email recipients.

 

37

            $recipientEmails = array\_unique(array\_filter($value));

36

38

37

 

        // Set default email recipient to admin email.

38

 

        return $recipientEmails ?: \[get\_bloginfo('admin\_email')\];

 

39

            // Set default email recipient to admin email.

 

40

            $value = $recipientEmails ?: \[get\_bloginfo('admin\_email')\];

 

41

        }

 

42

        return $value;

39

43

    }

40

44
  • give/tags/2.17.3/vendor/autoload.php

    r2634415

    r2659032

5

5

require\_once \_\_DIR\_\_ . '/composer/autoload\_real.php';

6

6

7

 

return ComposerAutoloaderInitb207af65f4e0031a4b9ee4b8dd488300::getLoader();

 

7

return ComposerAutoloaderInit6f721593ee2d1fbbc28576266040467a::getLoader();
  • give/tags/2.17.3/vendor/composer/ClassLoader.php

    r2605579

    r2659032

150

150

    /\*\*

151

151

     \* @return string\[\] Array of classname => path

152

 

     \* @psalm-var array<string, string>

 

152

     \* @psalm-return array<string, string>

153

153

     \*/

154

154

    public function getClassMap()
  • give/tags/2.17.3/vendor/composer/autoload_real.php

    r2634415

    r2659032

3

3

// autoload\_real.php @generated by Composer

4

4

5

 

class ComposerAutoloaderInitb207af65f4e0031a4b9ee4b8dd488300

 

5

class ComposerAutoloaderInit6f721593ee2d1fbbc28576266040467a

6

6

{

7

7

    private static $loader;

…

…

 

25

25

        require \_\_DIR\_\_ . '/platform\_check.php';

26

26

27

 

        spl\_autoload\_register(array('ComposerAutoloaderInitb207af65f4e0031a4b9ee4b8dd488300', 'loadClassLoader'), true, true);

 

27

        spl\_autoload\_register(array('ComposerAutoloaderInit6f721593ee2d1fbbc28576266040467a', 'loadClassLoader'), true, true);

28

28

        self::$loader = $loader = new \\Composer\\Autoload\\ClassLoader(\\dirname(\\dirname(\_\_FILE\_\_)));

29

 

        spl\_autoload\_unregister(array('ComposerAutoloaderInitb207af65f4e0031a4b9ee4b8dd488300', 'loadClassLoader'));

 

29

        spl\_autoload\_unregister(array('ComposerAutoloaderInit6f721593ee2d1fbbc28576266040467a', 'loadClassLoader'));

30

30

31

31

        $useStaticLoader = PHP\_VERSION\_ID >= 50600 && !defined('HHVM\_VERSION') && (!function\_exists('zend\_loader\_file\_encoded') || !zend\_loader\_file\_encoded());

…

…

 

33

33

            require \_\_DIR\_\_ . '/autoload\_static.php';

34

34

35

 

            call\_user\_func(\\Composer\\Autoload\\ComposerStaticInitb207af65f4e0031a4b9ee4b8dd488300::getInitializer($loader));

 

35

            call\_user\_func(\\Composer\\Autoload\\ComposerStaticInit6f721593ee2d1fbbc28576266040467a::getInitializer($loader));

36

36

        } else {

37

37

            $map = require \_\_DIR\_\_ . '/autoload\_namespaces.php';
  • give/tags/2.17.3/vendor/composer/autoload_static.php

    r2634415

    r2659032

5

5

namespace Composer\\Autoload;

6

6

7

 

class ComposerStaticInitb207af65f4e0031a4b9ee4b8dd488300

 

7

class ComposerStaticInit6f721593ee2d1fbbc28576266040467a

8

8

{

9

9

    public static $prefixLengthsPsr4 = array (

…

…

 

97

97

    {

98

98

        return \\Closure::bind(function () use ($loader) {

99

 

            $loader->prefixLengthsPsr4 = ComposerStaticInitb207af65f4e0031a4b9ee4b8dd488300::$prefixLengthsPsr4;

100

 

            $loader->prefixDirsPsr4 = ComposerStaticInitb207af65f4e0031a4b9ee4b8dd488300::$prefixDirsPsr4;

101

 

            $loader->classMap = ComposerStaticInitb207af65f4e0031a4b9ee4b8dd488300::$classMap;

 

99

            $loader->prefixLengthsPsr4 = ComposerStaticInit6f721593ee2d1fbbc28576266040467a::$prefixLengthsPsr4;

 

100

            $loader->prefixDirsPsr4 = ComposerStaticInit6f721593ee2d1fbbc28576266040467a::$prefixDirsPsr4;

 

101

            $loader->classMap = ComposerStaticInit6f721593ee2d1fbbc28576266040467a::$classMap;

102

102

103

103

        }, null, ClassLoader::class);
  • give/tags/2.17.3/vendor/composer/installed.php

    r2634415

    r2659032

1

1

<?php return array(

2

2

    'root' => array(

3

 

        'pretty\_version' => '2.17.1',

4

 

        'version' => '2.17.1.0',

 

3

        'pretty\_version' => '2.17.3',

 

4

        'version' => '2.17.3.0',

5

5

        'type' => 'wordpress-plugin',

6

6

        'install\_path' => \_\_DIR\_\_ . '/../../',

7

7

        'aliases' => array(),

8

 

        'reference' => 'd5b4a96b7d107b41aef724f4cf063b87fcb995f2',

 

8

        'reference' => 'd26ab82b6166d396d8aaa23018be0bfda26f19be',

9

9

        'name' => 'impress-org/give',

10

10

        'dev' => false,

…

…

 

42

42

        ),

43

43

        'impress-org/give' => array(

44

 

            'pretty\_version' => '2.17.1',

45

 

            'version' => '2.17.1.0',

 

44

            'pretty\_version' => '2.17.3',

 

45

            'version' => '2.17.3.0',

46

46

            'type' => 'wordpress-plugin',

47

47

            'install\_path' => \_\_DIR\_\_ . '/../../',

48

48

            'aliases' => array(),

49

 

            'reference' => 'd5b4a96b7d107b41aef724f4cf063b87fcb995f2',

 

49

            'reference' => 'd26ab82b6166d396d8aaa23018be0bfda26f19be',

50

50

            'dev\_requirement' => false,

51

51

        ),
  • give/tags/2.17.3/webpack.mix.js

    r2634415

    r2659032

2

2

const path = require('path');

3

3

const WebpackRTLPlugin = require('webpack-rtl-plugin');

4

 

const {CleanWebpackPlugin} = require('clean-webpack-plugin');

5

4

6

5

mix.setPublicPath('assets/dist')

…

…

 

38

37

    .js('src/MigrationLog/Admin/index.js', 'js/give-migrations-list-table-app.js')

39

38

    .js('src/InPluginUpsells/resources/js/addons-admin-page.js', 'js/admin-upsell-addons-page.js')

40

 

    .js('src/InPluginUpsells/resources/js/recurring-donations-settings-tab.js', 'js/admin-upsell-recurring-donations-settings-tab.js')

 

39

    .js(

 

40

        'src/InPluginUpsells/resources/js/recurring-donations-settings-tab.js',

 

41

        'js/admin-upsell-recurring-donations-settings-tab.js'

 

42

    )

41

43

    .js('src/InPluginUpsells/resources/js/sale-banner.js', 'js/admin-upsell-sale-banner.js')

42

44

    .js('src/DonationSummary/resources/js/summary.js', 'js/give-donation-summary.js')

…

…

 

44

46

    .sourceMaps(false)

45

47

46

 

    .copyDirectory('assets/src/tcpdf-fonts', 'vendor/tecnickcom/tcpdf/fonts')

47

48

    .copyDirectory('assets/src/images', 'assets/dist/images')

48

49

    .copyDirectory('assets/src/fonts', 'assets/dist/fonts');

…

…

 

72

73

            format: {

73

74

                comments: false,

74

 

            }

75

 

        }

76

 

    }

 

75

            },

 

76

        },

 

77

    },

77

78

});

78

79

…

…

 

84

85

                minify: true,

85

86

            }),

86

 

            new CleanWebpackPlugin({

87

 

                // We clean up he tcpdf directory in the vendor to prevent it from bloating the release file size

88

 

                cleanOnceBeforeBuildPatterns: \[path.join(process.cwd(), 'vendor/tecnickcom/tcpdf/fonts/\*')\],

89

 

            }),

90

87

        \],

91

88

    });
  • give/trunk/assets/dist/mix-manifest.json

    r2632392

    r2659032

35

35

    "/css/admin-widgets.css": "/css/admin-widgets.css",

36

36

    "/css/plugin-deactivation-survey.css": "/css/plugin-deactivation-survey.css",

37

 

    "/vendor/tecnickcom/tcpdf/fonts/CODE2000.TTF": "/vendor/tecnickcom/tcpdf/fonts/CODE2000.TTF",

38

 

    "/vendor/tecnickcom/tcpdf/fonts/code2000.ctg.z": "/vendor/tecnickcom/tcpdf/fonts/code2000.ctg.z",

39

 

    "/vendor/tecnickcom/tcpdf/fonts/code2000.php": "/vendor/tecnickcom/tcpdf/fonts/code2000.php",

40

 

    "/vendor/tecnickcom/tcpdf/fonts/code2000.z": "/vendor/tecnickcom/tcpdf/fonts/code2000.z",

41

 

    "/vendor/tecnickcom/tcpdf/fonts/code2000.z.cpgz": "/vendor/tecnickcom/tcpdf/fonts/code2000.z.cpgz",

42

 

    "/vendor/tecnickcom/tcpdf/fonts/dejavusans.ctg.z": "/vendor/tecnickcom/tcpdf/fonts/dejavusans.ctg.z",

43

 

    "/vendor/tecnickcom/tcpdf/fonts/dejavusans.php": "/vendor/tecnickcom/tcpdf/fonts/dejavusans.php",

44

 

    "/vendor/tecnickcom/tcpdf/fonts/dejavusans.z": "/vendor/tecnickcom/tcpdf/fonts/dejavusans.z",

45

 

    "/vendor/tecnickcom/tcpdf/fonts/helvetica.php": "/vendor/tecnickcom/tcpdf/fonts/helvetica.php",

46

 

    "/vendor/tecnickcom/tcpdf/fonts/helveticab.php": "/vendor/tecnickcom/tcpdf/fonts/helveticab.php",

47

 

    "/vendor/tecnickcom/tcpdf/fonts/helveticabi.php": "/vendor/tecnickcom/tcpdf/fonts/helveticabi.php",

48

 

    "/vendor/tecnickcom/tcpdf/fonts/helveticai.php": "/vendor/tecnickcom/tcpdf/fonts/helveticai.php",

49

37

    "/images/ach.png": "/images/ach.png",

50

38

    "/images/addons-admin-page-decor-1.png": "/images/addons-admin-page-decor-1.png",
  • give/trunk/give.php

    r2634415

    r2659032

6

6

 \* Author: GiveWP

7

7

 \* Author URI: https://givewp.com/

8

 

 \* Version: 2.17.1

 

8

 \* Version: 2.17.3

9

9

 \* Requires at least: 4.9

10

10

 \* Requires PHP: 5.6

…

…

 

281

281

        // Plugin version.

282

282

        if ( ! defined('GIVE\_VERSION')) {

283

 

            define('GIVE\_VERSION', '2.17.1');

 

283

            define('GIVE\_VERSION', '2.17.3');

284

284

        }

285

285
  • give/trunk/includes/admin/forms/dashboard-columns.php

    r2407987

    r2659032

492

492

    <div id="give-forms-advanced-filter" class="give-filters">

493

493

        <div class="give-filter give-filter-search">

494

 

            <input type="text" id="give-forms-search-input" placeholder="<?php \_e( 'Form Name or ID', 'give' ); ?>" name="s" value="<?php echo $search; ?>">

 

494

            <input type="text" id="give-forms-search-input" placeholder="<?php \_e( 'Form Name or ID', 'give' ); ?>" name="s" value="<?php echo esc\_attr( $search ); ?>">

495

495

            <?php

496

496

            submit\_button(
  • give/trunk/includes/admin/tools/import/class-give-import-core-settings.php

    r2271154

    r2659032

363

363

                    <div class="give-field-wrap">

364

364

                        <label for="json">

365

 

                            <input type="file" name="json" class="give-upload-json-file" value="<?php echo $json; ?>"

 

365

                            <input type="file" name="json" class="give-upload-json-file" value="<?php echo esc\_attr($json); ?>"

366

366

                                   accept=".json">

367

367

                            <p class="give-field-description"><?php esc\_html\_e( 'The file type must be JSON.', 'give' ); ?></p>
  • give/trunk/includes/forms/template.php

    r2620345

    r2659032

1477

1477

function give\_get\_login\_fields( $form\_id ) {

1478

1478

1479

 

    $form\_id            = isset( $\_POST\['form\_id'\] ) ? $\_POST\['form\_id'\] : $form\_id;

 

1479

    $form\_id            = isset( $\_POST\['form\_id'\] ) ? give\_clean( $\_POST\['form\_id'\] ) : $form\_id;

1480

1480

    $show\_register\_form = give\_show\_login\_register\_option( $form\_id );

1481

1481

1482

1482

    ob\_start();

1483

1483

    ?>

1484

 

    <fieldset id="give-login-fields-<?php echo $form\_id; ?>">

 

1484

    <fieldset id="give-login-fields-<?php echo esc\_attr( $form\_id ); ?>">

1485

1485

        <legend>

1486

1486

            <?php

…

…

 

1520

1520

        ?>

1521

1521

        <div class="give-user-login-fields-container">

1522

 

            <div id="give-user-login-wrap-<?php echo $form\_id; ?>" class="form-row form-row-first form-row-responsive">

1523

 

                <label class="give-label" for="give-user-login-<?php echo $form\_id; ?>">

 

1522

            <div id="give-user-login-wrap-<?php echo esc\_attr( $form\_id ); ?>" class="form-row form-row-first form-row-responsive">

 

1523

                <label class="give-label" for="give-user-login-<?php echo esc\_attr( $form\_id ); ?>">

1524

1524

                    <?php \_e( 'Username or Email Address', 'give' ); ?>

1525

1525

                    <?php if ( give\_logged\_in\_only( $form\_id ) ) { ?>

…

…

 

1530

1530

                <input class="give-input<?php echo ( give\_logged\_in\_only( $form\_id ) ) ? ' required' : ''; ?>"

1531

1531

                       type="text"

1532

 

                       name="give\_user\_login" id="give-user-login-<?php echo $form\_id; ?>" value=""

 

1532

                       name="give\_user\_login" id="give-user-login-<?php echo esc\_attr( $form\_id ); ?>" value=""

1533

1533

                       placeholder="<?php \_e( 'Your username or email', 'give' ); ?>"<?php echo ( give\_logged\_in\_only( $form\_id ) ) ? ' required aria-required="true" ' : ''; ?>/>

1534

1534

            </div>

1535

1535

1536

 

            <div id="give-user-pass-wrap-<?php echo $form\_id; ?>"

 

1536

            <div id="give-user-pass-wrap-<?php echo esc\_attr( $form\_id ); ?>"

1537

1537

                 class="give\_login\_password form-row form-row-last form-row-responsive">

1538

 

                <label class="give-label" for="give-user-pass-<?php echo $form\_id; ?>">

 

1538

                <label class="give-label" for="give-user-pass-<?php echo esc\_attr( $form\_id ); ?>">

1539

1539

                    <?php \_e( 'Password', 'give' ); ?>

1540

1540

                    <?php if ( give\_logged\_in\_only( $form\_id ) ) { ?>

…

…

 

1543

1543

                </label>

1544

1544

                <input class="give-input<?php echo ( give\_logged\_in\_only( $form\_id ) ) ? ' required' : ''; ?>"

1545

 

                       type="password" name="give\_user\_pass" id="give-user-pass-<?php echo $form\_id; ?>"

 

1545

                       type="password" name="give\_user\_pass" id="give-user-pass-<?php echo esc\_attr( $form\_id ); ?>"

1546

1546

                       placeholder="<?php \_e( 'Your password', 'give' ); ?>"<?php echo ( give\_logged\_in\_only( $form\_id ) ) ? ' required aria-required="true" ' : ''; ?>/>

1547

1547

                <?php if ( give\_logged\_in\_only( $form\_id ) ) : ?>

…

…

 

1551

1551

        </div>

1552

1552

1553

 

        <div id="give-user-login-submit-<?php echo $form\_id; ?>" class="give-clearfix">

 

1553

        <div id="give-user-login-submit-<?php echo esc\_attr( $form\_id ); ?>" class="give-clearfix">

1554

1554

            <input type="submit" class="give-submit give-btn button" name="give\_login\_submit"

1555

1555

                   value="<?php \_e( 'Login', 'give' ); ?>"/>

…

…

 

1560

1560

            <?php } ?>

1561

1561

            <span class="give-loading-animation"></span>

1562

 

            <div id="give-forgot-password-wrap-<?php echo $form\_id; ?>" class="give\_login\_forgot\_password">

 

1562

            <div id="give-forgot-password-wrap-<?php echo esc\_attr( $form\_id ); ?>" class="give\_login\_forgot\_password">

1563

1563

                <span class="give-forgot-password ">

1564

1564

                    <a href="<?php echo wp\_lostpassword\_url(); ?>" target="\_blank"><?php \_e( 'Reset Password', 'give' ); ?></a>
  • give/trunk/languages/give.pot

    r2634415

    r2659032

1

 

\# Copyright (C) 2021 GiveWP

 

1

\# Copyright (C) 2022 GiveWP

2

2

\# This file is distributed under the same license as the Give - Donation Plugin plugin.

3

3

msgid ""

4

4

msgstr ""

5

 

"Project-Id-Version: Give - Donation Plugin 2.17.1\\n"

 

5

"Project-Id-Version: Give - Donation Plugin 2.17.3\\n"

6

6

"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/givewp\\n"

7

7

"Last-Translator: FULL NAME <EMAIL@ADDRESS>\\n"

…

…

 

10

10

"Content-Type: text/plain; charset=UTF-8\\n"

11

11

"Content-Transfer-Encoding: 8bit\\n"

12

 

"POT-Creation-Date: 2021-11-23T23:44:43+00:00\\n"

 

12

"POT-Creation-Date: 2022-01-18T00:22:45+00:00\\n"

13

13

"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\\n"

14

14

"X-Generator: WP-CLI 2.5.0\\n"
  • give/trunk/output.log

    r2634415

    r2659032

17

17

2a0fa75da19b: Pulling fs layer

18

18

07289ea6b918: Pulling fs layer

 

19

4612e05a72cf: Waiting

 

20

f1478d838f46: Waiting

19

21

c88517be8365: Waiting

20

22

142abe9b67c6: Waiting

…

…

 

22

24

2a0fa75da19b: Waiting

23

25

07289ea6b918: Waiting

24

 

4612e05a72cf: Waiting

25

 

f1478d838f46: Waiting

 

26

320f26ee9b1c: Verifying Checksum

 

27

320f26ee9b1c: Download complete

26

28

30e209609427: Verifying Checksum

27

29

30e209609427: Download complete

28

 

320f26ee9b1c: Verifying Checksum

29

 

320f26ee9b1c: Download complete

30

30

801bfaa63ef2: Verifying Checksum

31

 

801bfaa63ef2: Download complete

 

31

801bfaa63ef2: Pull complete

32

32

c88517be8365: Verifying Checksum

33

33

c88517be8365: Download complete

34

 

801bfaa63ef2: Pull complete

35

34

4612e05a72cf: Verifying Checksum

36

35

4612e05a72cf: Download complete

37

36

f1478d838f46: Verifying Checksum

38

37

f1478d838f46: Download complete

39

 

181891da1ea0: Verifying Checksum

 

38

30e209609427: Pull complete

 

39

142abe9b67c6: Verifying Checksum

 

40

142abe9b67c6: Download complete

40

41

181891da1ea0: Download complete

41

42

2a0fa75da19b: Verifying Checksum

42

43

2a0fa75da19b: Download complete

43

 

142abe9b67c6: Verifying Checksum

44

 

142abe9b67c6: Download complete

45

 

07289ea6b918: Verifying Checksum

46

 

07289ea6b918: Download complete

47

 

30e209609427: Pull complete

48

44

320f26ee9b1c: Pull complete

49

45

4612e05a72cf: Pull complete

50

46

f1478d838f46: Pull complete

 

47

07289ea6b918: Download complete

51

48

c88517be8365: Pull complete

52

49

142abe9b67c6: Pull complete
  • give/trunk/readme.txt

    r2658954

    r2659032

4

4

Tags: donation, donate, recurring donations, fundraising, crowdfunding

5

5

Requires at least: 4.9

6

 

Tested up to: 5.9

 

6

Tested up to: 5.8

7

7

Requires PHP: 5.6

8

 

Stable tag: 2.17.2

 

8

Stable tag: 2.17.3

9

9

License: GPLv3

10

10

License URI: http://www.gnu.org/licenses/gpl-3.0.html

…

…

 

252

252

253

253

\== Changelog ==

 

254

\= 2.17.3: January 17th, 2022 =

 

255

\* Security: Minor XSS vulnerabilities, which require admin access to exploit, have been resolved

 

256

254

257

\= 2.17.2: December 28th, 2021 =

255

258

\* Fix: Only validate email settings that are not empty
  • give/trunk/src/Email/GlobalSettingValidator.php

    r2634415

    r2659032

29

29

    /\*\*

30

30

     \* @since 2.17.1

 

31

     \* @since 2.17.2 Only filter value as unique array if set. Some settings do not need to be set, ie donation-receipt\_recipient.

31

32

     \*/

32

33

    public function validateSetting($value)

33

34

    {

34

 

        // Same unique email address for email recipients.

35

 

        $recipientEmails = array\_unique(array\_filter($value));

 

35

        if( ! empty( $value ) ) {

 

36

            // Same unique email address for email recipients.

 

37

            $recipientEmails = array\_unique(array\_filter($value));

36

38

37

 

        // Set default email recipient to admin email.

38

 

        return $recipientEmails ?: \[get\_bloginfo('admin\_email')\];

 

39

            // Set default email recipient to admin email.

 

40

            $value = $recipientEmails ?: \[get\_bloginfo('admin\_email')\];

 

41

        }

 

42

        return $value;

39

43

    }

40

44
  • give/trunk/vendor/autoload.php

    r2634415

    r2659032

5

5

require\_once \_\_DIR\_\_ . '/composer/autoload\_real.php';

6

6

7

 

return ComposerAutoloaderInitb207af65f4e0031a4b9ee4b8dd488300::getLoader();

 

7

return ComposerAutoloaderInit6f721593ee2d1fbbc28576266040467a::getLoader();
  • give/trunk/vendor/composer/ClassLoader.php

    r2605579

    r2659032

150

150

    /\*\*

151

151

     \* @return string\[\] Array of classname => path

152

 

     \* @psalm-var array<string, string>

 

152

     \* @psalm-return array<string, string>

153

153

     \*/

154

154

    public function getClassMap()
  • give/trunk/vendor/composer/autoload_real.php

    r2634415

    r2659032

3

3

// autoload\_real.php @generated by Composer

4

4

5

 

class ComposerAutoloaderInitb207af65f4e0031a4b9ee4b8dd488300

 

5

class ComposerAutoloaderInit6f721593ee2d1fbbc28576266040467a

6

6

{

7

7

    private static $loader;

…

…

 

25

25

        require \_\_DIR\_\_ . '/platform\_check.php';

26

26

27

 

        spl\_autoload\_register(array('ComposerAutoloaderInitb207af65f4e0031a4b9ee4b8dd488300', 'loadClassLoader'), true, true);

 

27

        spl\_autoload\_register(array('ComposerAutoloaderInit6f721593ee2d1fbbc28576266040467a', 'loadClassLoader'), true, true);

28

28

        self::$loader = $loader = new \\Composer\\Autoload\\ClassLoader(\\dirname(\\dirname(\_\_FILE\_\_)));

29

 

        spl\_autoload\_unregister(array('ComposerAutoloaderInitb207af65f4e0031a4b9ee4b8dd488300', 'loadClassLoader'));

 

29

        spl\_autoload\_unregister(array('ComposerAutoloaderInit6f721593ee2d1fbbc28576266040467a', 'loadClassLoader'));

30

30

31

31

        $useStaticLoader = PHP\_VERSION\_ID >= 50600 && !defined('HHVM\_VERSION') && (!function\_exists('zend\_loader\_file\_encoded') || !zend\_loader\_file\_encoded());

…

…

 

33

33

            require \_\_DIR\_\_ . '/autoload\_static.php';

34

34

35

 

            call\_user\_func(\\Composer\\Autoload\\ComposerStaticInitb207af65f4e0031a4b9ee4b8dd488300::getInitializer($loader));

 

35

            call\_user\_func(\\Composer\\Autoload\\ComposerStaticInit6f721593ee2d1fbbc28576266040467a::getInitializer($loader));

36

36

        } else {

37

37

            $map = require \_\_DIR\_\_ . '/autoload\_namespaces.php';
  • give/trunk/vendor/composer/autoload_static.php

    r2634415

    r2659032

5

5

namespace Composer\\Autoload;

6

6

7

 

class ComposerStaticInitb207af65f4e0031a4b9ee4b8dd488300

 

7

class ComposerStaticInit6f721593ee2d1fbbc28576266040467a

8

8

{

9

9

    public static $prefixLengthsPsr4 = array (

…

…

 

97

97

    {

98

98

        return \\Closure::bind(function () use ($loader) {

99

 

            $loader->prefixLengthsPsr4 = ComposerStaticInitb207af65f4e0031a4b9ee4b8dd488300::$prefixLengthsPsr4;

100

 

            $loader->prefixDirsPsr4 = ComposerStaticInitb207af65f4e0031a4b9ee4b8dd488300::$prefixDirsPsr4;

101

 

            $loader->classMap = ComposerStaticInitb207af65f4e0031a4b9ee4b8dd488300::$classMap;

 

99

            $loader->prefixLengthsPsr4 = ComposerStaticInit6f721593ee2d1fbbc28576266040467a::$prefixLengthsPsr4;

 

100

            $loader->prefixDirsPsr4 = ComposerStaticInit6f721593ee2d1fbbc28576266040467a::$prefixDirsPsr4;

 

101

            $loader->classMap = ComposerStaticInit6f721593ee2d1fbbc28576266040467a::$classMap;

102

102

103

103

        }, null, ClassLoader::class);
  • give/trunk/vendor/composer/installed.php

    r2634415

    r2659032

1

1

<?php return array(

2

2

    'root' => array(

3

 

        'pretty\_version' => '2.17.1',

4

 

        'version' => '2.17.1.0',

 

3

        'pretty\_version' => '2.17.3',

 

4

        'version' => '2.17.3.0',

5

5

        'type' => 'wordpress-plugin',

6

6

        'install\_path' => \_\_DIR\_\_ . '/../../',

7

7

        'aliases' => array(),

8

 

        'reference' => 'd5b4a96b7d107b41aef724f4cf063b87fcb995f2',

 

8

        'reference' => 'd26ab82b6166d396d8aaa23018be0bfda26f19be',

9

9

        'name' => 'impress-org/give',

10

10

        'dev' => false,

…

…

 

42

42

        ),

43

43

        'impress-org/give' => array(

44

 

            'pretty\_version' => '2.17.1',

45

 

            'version' => '2.17.1.0',

 

44

            'pretty\_version' => '2.17.3',

 

45

            'version' => '2.17.3.0',

46

46

            'type' => 'wordpress-plugin',

47

47

            'install\_path' => \_\_DIR\_\_ . '/../../',

48

48

            'aliases' => array(),

49

 

            'reference' => 'd5b4a96b7d107b41aef724f4cf063b87fcb995f2',

 

49

            'reference' => 'd26ab82b6166d396d8aaa23018be0bfda26f19be',

50

50

            'dev\_requirement' => false,

51

51

        ),
  • give/trunk/webpack.mix.js

    r2634415

    r2659032

2

2

const path = require('path');

3

3

const WebpackRTLPlugin = require('webpack-rtl-plugin');

4

 

const {CleanWebpackPlugin} = require('clean-webpack-plugin');

5

4

6

5

mix.setPublicPath('assets/dist')

…

…

 

38

37

    .js('src/MigrationLog/Admin/index.js', 'js/give-migrations-list-table-app.js')

39

38

    .js('src/InPluginUpsells/resources/js/addons-admin-page.js', 'js/admin-upsell-addons-page.js')

40

 

    .js('src/InPluginUpsells/resources/js/recurring-donations-settings-tab.js', 'js/admin-upsell-recurring-donations-settings-tab.js')

 

39

    .js(

 

40

        'src/InPluginUpsells/resources/js/recurring-donations-settings-tab.js',

 

41

        'js/admin-upsell-recurring-donations-settings-tab.js'

 

42

    )

41

43

    .js('src/InPluginUpsells/resources/js/sale-banner.js', 'js/admin-upsell-sale-banner.js')

42

44

    .js('src/DonationSummary/resources/js/summary.js', 'js/give-donation-summary.js')

…

…

 

44

46

    .sourceMaps(false)

45

47

46

 

    .copyDirectory('assets/src/tcpdf-fonts', 'vendor/tecnickcom/tcpdf/fonts')

47

48

    .copyDirectory('assets/src/images', 'assets/dist/images')

48

49

    .copyDirectory('assets/src/fonts', 'assets/dist/fonts');

…

…

 

72

73

            format: {

73

74

                comments: false,

74

 

            }

75

 

        }

76

 

    }

 

75

            },

 

76

        },

 

77

    },

77

78

});

78

79

…

…

 

84

85

                minify: true,

85

86

            }),

86

 

            new CleanWebpackPlugin({

87

 

                // We clean up he tcpdf directory in the vendor to prevent it from bloating the release file size

88

 

                cleanOnceBeforeBuildPatterns: \[path.join(process.cwd(), 'vendor/tecnickcom/tcpdf/fonts/\*')\],

89

 

            }),

90

87

        \],

91

88

    });

CVE: Latest News

CVE-2023-50976: Transactions API Authorization by oleiman · Pull Request #14969 · redpanda-data/redpanda
CVE-2023-6905
CVE-2023-6903
CVE-2023-6904
CVE-2023-3907