Skip to content

Commit

Permalink
Merge pull request #3189 from magento-trigger/PR-2.1.16
Browse files Browse the repository at this point in the history
[Trigger] Bugfixes
  • Loading branch information
okolesnyk authored Sep 19, 2018
2 parents 4ebfa1d + 9b8d2a0 commit 84c450a
Show file tree
Hide file tree
Showing 6 changed files with 97 additions and 29 deletions.
3 changes: 3 additions & 0 deletions app/code/Magento/Theme/view/base/requirejs-config.js
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,9 @@ var config = {
"mixins": {
"jquery/jstree/jquery.jstree": {
"mage/backend/jstree-mixin": true
},
'jquery': {
'jquery/patches/jquery': true
}
}
}
Expand Down
9 changes: 8 additions & 1 deletion app/code/Magento/Theme/view/frontend/requirejs-config.js
Original file line number Diff line number Diff line change
Expand Up @@ -40,5 +40,12 @@ var config = {
"mage/dataPost",
"js/theme",
"mage/bootstrap"
]
],
config: {
mixins: {
'jquery/jquery-ui': {
'jquery/patches/jquery-ui': true
}
}
}
};
46 changes: 46 additions & 0 deletions lib/web/jquery/patches/jquery-ui.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
/**
* Copyright © Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/

define([
'jquery'
], function ($) {
'use strict';

/**
* Patch for CVE-2016-7103 (XSS vulnerability).
* Can safely remove only when jQuery UI is upgraded to >= 1.12.x.
* https://www.cvedetails.com/cve/CVE-2016-7103/
*/
function dialogPatch() {
$.widget('ui.dialog', $.ui.dialog, {
/** @inheritdoc */
_createTitlebar: function () {
this.options.closeText = $('<a>').text('' + this.options.closeText).html();

this._superApply();
},

/** @inheritdoc */
_setOption: function (key, value) {
if (key === 'closeText') {
value = $('<a>').text('' + value).html();
}

this._super(key, value);
}
});
}

return function () {
var majorVersion = $.ui.version.split('.')[0],
minorVersion = $.ui.version.split('.')[1];

if (majorVersion === 1 && minorVersion >= 12 || majorVersion >= 2) {
console.warn('jQuery patch for CVE-2016-7103 is no longer necessary, and should be removed');
}

dialogPatch();
};
});
35 changes: 35 additions & 0 deletions lib/web/jquery/patches/jquery.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
/**
* Copyright © Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/

define([], function () {
'use strict';

/**
* Patch for CVE-2015-9251 (XSS vulnerability).
* Can safely remove only when jQuery UI is upgraded to >= 3.3.x.
* https://www.cvedetails.com/cve/CVE-2015-9251/
*/
function ajaxResponsePatch(jQuery) {
jQuery.ajaxPrefilter(function (s) {
if (s.crossDomain) {
s.contents.script = false;
}
});
}

return function ($) {
var majorVersion = $.fn.jquery.split('.')[0];

$.noConflict();

if (majorVersion >= 3) {
console.warn('jQuery patch for CVE-2015-9251 is no longer necessary, and should be removed');
}

ajaxResponsePatch($);

return $;
};
});
28 changes: 0 additions & 28 deletions lib/web/mage/translate-inline.js
Original file line number Diff line number Diff line change
Expand Up @@ -158,33 +158,5 @@
}
});

$.widget('ui.button', $.ui.button, {
_create: function () {
this._super();
/**
* Decode HTML entities to prevent incorrect rendering of dialog button label
*/
this.options.label = this.options.label
? jQuery('<div/>').html(this.options.label).text()
: this.options.label;
/**
* Reset button to make decoded label visible
*/
this._resetButton();
}
});

$.widget('ui.dialog', $.ui.dialog, {
/**
* Prevent rendering of dialog title as escaped HTML
*/
_title: function (title) {
this._super(title);
if (this.options.title) {
title.html(this.options.title);
}
}
});

return $.mage.translateInline;
}));
5 changes: 5 additions & 0 deletions pub/static/.htaccess
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,11 @@ Options -MultiViews
RewriteCond %{REQUEST_FILENAME} !-l

RewriteRule .* ../static.php?resource=$0 [L]
# Detects if moxieplayer request with uri params and redirects to uri without params
<Files moxieplayer.swf>
RewriteCond %{QUERY_STRING} !^$
RewriteRule ^(.*)$ %{REQUEST_URI}? [R=301,L]
</Files>
</IfModule>

############################################
Expand Down

0 comments on commit 84c450a

Please sign in to comment.