GHSA-3crj-w4f5-gwh4

Suggest an improvement
Source
https://github.com/advisories/GHSA-3crj-w4f5-gwh4
Import Source
https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2021/01/GHSA-3crj-w4f5-gwh4/GHSA-3crj-w4f5-gwh4.json
JSON Data
https://api.test.osv.dev/v1/vulns/GHSA-3crj-w4f5-gwh4
Aliases
Related
Published
2021-01-29T20:51:37Z
Modified
2023-11-01T04:54:11.702268Z
Severity
  • 6.3 (Medium) CVSS_V3 - CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:C/C:N/I:H/A:N CVSS Calculator
Summary
Processing untrusted theming resources might execute arbitrary code (ACE)
Details

Impact

When processing theming resources (i.e. *.less files) with less-openui5 that originate from an untrusted source, those resources might contain JavaScript code which will be executed in the context of the build process.

While this is a feature of the Less.js library, it is an unexpected behavior in the context of OpenUI5 and SAPUI5 development.

Especially in the context of UI5 Tooling, which relies on less-openui5, this poses a security threat:

An attacker might create a library or theme-library containing a custom control or theme, hiding malicious JavaScript code in one of the .less files.

This is an example of inline JavaScript in a Less file:

.rule {
    @var: `(function(){console.log('Hello from JavaScript'); process.exit(1);})()`;
    color: @var;
}

Starting with Less.js version 3.0.0, the Inline JavaScript feature is disabled by default. less-openui5 however currently uses a fork of Less.js v1.6.3.

Note that disabling the Inline JavaScript feature in Less.js versions 1.x, still evaluates code has additional double codes around it:

.rule {
    @var: "`(function(){console.log('Hello from JavaScript'); process.exit(1);})()`";
    color: @var;
}

Patches

We decided to remove the inline JavaScript evaluation feature completely from the code of our Less.js fork.

This fix is available in less-openui5 version v0.10.0

Workarounds

Only process trusted theming resources.

For more information

If you have any questions or comments about this advisory: * Open an issue in https://github.com/SAP/less-openui5 * Email us at secure@sap.com

Database specific
{
    "nvd_published_at": "2021-02-16T18:15:00Z",
    "github_reviewed_at": "2021-01-29T20:50:46Z",
    "severity": "HIGH",
    "github_reviewed": true,
    "cwe_ids": [
        "CWE-74"
    ]
}
References

Affected packages

npm / less-openui5

Package

Affected ranges

Type
SEMVER
Events
Introduced
0Unknown introduced version / All previous versions are affected
Fixed
0.10.0