VYPR
Low severityNVD Advisory· Published Jun 1, 2015· Updated May 6, 2026

CVE-2015-2269

CVE-2015-2269

Description

Multiple cross-site scripting (XSS) vulnerabilities in lib/javascript-static.js in Moodle through 2.5.9, 2.6.x before 2.6.9, 2.7.x before 2.7.6, and 2.8.x before 2.8.4 allow remote authenticated users to inject arbitrary web script or HTML via a (1) alt or (2) title attribute in an IMG element.

Affected packages

Versions sourced from the GitHub Security Advisory.

PackageAffected versionsPatched versions
moodle/moodlePackagist
<= 2.5.9
moodle/moodlePackagist
>= 2.6.0, < 2.6.92.6.9
moodle/moodlePackagist
>= 2.7.0, < 2.7.62.7.6
moodle/moodlePackagist
>= 2.8.0, < 2.8.42.8.4

Affected products

29
  • Moodle/Moodle29 versions
    cpe:2.3:a:moodle:moodle:*:*:*:*:*:*:*:*+ 28 more
    • cpe:2.3:a:moodle:moodle:*:*:*:*:*:*:*:*range: <=2.5.9
    • cpe:2.3:a:moodle:moodle:2.5.0:*:*:*:*:*:*:*
    • cpe:2.3:a:moodle:moodle:2.5.1:*:*:*:*:*:*:*
    • cpe:2.3:a:moodle:moodle:2.5.2:*:*:*:*:*:*:*
    • cpe:2.3:a:moodle:moodle:2.5.3:*:*:*:*:*:*:*
    • cpe:2.3:a:moodle:moodle:2.5.4:*:*:*:*:*:*:*
    • cpe:2.3:a:moodle:moodle:2.5.5:*:*:*:*:*:*:*
    • cpe:2.3:a:moodle:moodle:2.5.6:*:*:*:*:*:*:*
    • cpe:2.3:a:moodle:moodle:2.5.7:*:*:*:*:*:*:*
    • cpe:2.3:a:moodle:moodle:2.5.8:*:*:*:*:*:*:*
    • cpe:2.3:a:moodle:moodle:2.6.0:*:*:*:*:*:*:*
    • cpe:2.3:a:moodle:moodle:2.6.1:*:*:*:*:*:*:*
    • cpe:2.3:a:moodle:moodle:2.6.2:*:*:*:*:*:*:*
    • cpe:2.3:a:moodle:moodle:2.6.3:*:*:*:*:*:*:*
    • cpe:2.3:a:moodle:moodle:2.6.4:*:*:*:*:*:*:*
    • cpe:2.3:a:moodle:moodle:2.6.5:*:*:*:*:*:*:*
    • cpe:2.3:a:moodle:moodle:2.6.6:*:*:*:*:*:*:*
    • cpe:2.3:a:moodle:moodle:2.6.7:*:*:*:*:*:*:*
    • cpe:2.3:a:moodle:moodle:2.6.8:*:*:*:*:*:*:*
    • cpe:2.3:a:moodle:moodle:2.7.0:*:*:*:*:*:*:*
    • cpe:2.3:a:moodle:moodle:2.7.1:*:*:*:*:*:*:*
    • cpe:2.3:a:moodle:moodle:2.7.2:*:*:*:*:*:*:*
    • cpe:2.3:a:moodle:moodle:2.7.3:*:*:*:*:*:*:*
    • cpe:2.3:a:moodle:moodle:2.7.4:*:*:*:*:*:*:*
    • cpe:2.3:a:moodle:moodle:2.7.5:*:*:*:*:*:*:*
    • cpe:2.3:a:moodle:moodle:2.8.0:*:*:*:*:*:*:*
    • cpe:2.3:a:moodle:moodle:2.8.1:*:*:*:*:*:*:*
    • cpe:2.3:a:moodle:moodle:2.8.2:*:*:*:*:*:*:*
    • cpe:2.3:a:moodle:moodle:2.8.3:*:*:*:*:*:*:*

Patches

1
ead8b28f92da

MDL-49144 blocks: Sanitise alt and title for block controls

https://github.com/moodle/moodleAndrew NicolsFeb 10, 2015via ghsa
1 file changed · +23 5
  • lib/javascript-static.js+23 5 modified
    @@ -597,14 +597,32 @@ M.util.init_block_hider = function(Y, config) {
                         this.set('block', '#'+this.get('id'));
                         var b = this.get('block'),
                             t = b.one('.title'),
    -                        a = null;
    +                        a = null,
    +                        hide,
    +                        show;
                         if (t && (a = t.one('.block_action'))) {
    -                        var hide = Y.Node.create('<img class="block-hider-hide" tabindex="0" alt="'+config.tooltipVisible+'" title="'+config.tooltipVisible+'" />');
    -                        hide.setAttribute('src', this.get('iconVisible')).on('click', this.updateState, this, true);
    +                        hide = Y.Node.create('<img />')
    +                            .addClass('block-hider-hide')
    +                            .setAttrs({
    +                                alt:        config.tooltipVisible,
    +                                src:        this.get('iconVisible'),
    +                                tabindex:   0,
    +                                'title':    config.tooltipVisible
    +                            });
                             hide.on('keypress', this.updateStateKey, this, true);
    -                        var show = Y.Node.create('<img class="block-hider-show" tabindex="0" alt="'+config.tooltipHidden+'" title="'+config.tooltipHidden+'" />');
    -                        show.setAttribute('src', this.get('iconHidden')).on('click', this.updateState, this, false);
    +                        hide.on('click', this.updateState, this, true);
    +
    +                        show = Y.Node.create('<img />')
    +                            .addClass('block-hider-show')
    +                            .setAttrs({
    +                                alt:        config.tooltipHidden,
    +                                src:        this.get('iconHidden'),
    +                                tabindex:   0,
    +                                'title':    config.tooltipHidden
    +                            });
                             show.on('keypress', this.updateStateKey, this, false);
    +                        show.on('click', this.updateState, this, false);
    +
                             a.insert(show, 0).insert(hide, 0);
                         }
                     },
    

Vulnerability mechanics

Generated by null/stub on May 9, 2026. Inputs: CWE entries + fix-commit diffs from this CVE's patches. Citations validated against bundle.

References

5

News mentions

0

No linked articles in our index yet.