Skip to content

Commit

Permalink
Publish Advisories
Browse files Browse the repository at this point in the history
  • Loading branch information
advisory-database[bot] committed Dec 10, 2024
1 parent d988ee7 commit 82a9c26
Show file tree
Hide file tree
Showing 2 changed files with 175 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,109 @@
{
"schema_version": "1.4.0",
"id": "GHSA-vfm5-rmrh-j26v",
"modified": "2024-12-10T22:42:27Z",
"published": "2024-12-10T22:42:27Z",
"aliases": [
"CVE-2024-54133"
],
"summary": "Possible Content Security Policy bypass in Action Dispatch",
"details": "There is a possible Cross Site Scripting (XSS) vulnerability in the `content_security_policy` helper in Action Pack.\n\nImpact\n------\nApplications which set Content-Security-Policy (CSP) headers dynamically from untrusted user input may be vulnerable to carefully crafted inputs being able to inject new directives into the CSP. This could lead to a bypass of the CSP and its protection against XSS and other attacks.\n\nReleases\n--------\nThe fixed releases are available at the normal locations.\n\nWorkarounds\n-----------\nApplications can avoid setting CSP headers dynamically from untrusted input, or can validate/sanitize that input.\n\nCredits\n-------\nThanks to [ryotak](https://hackerone.com/ryotak) for the report!\n",
"severity": [],
"affected": [
{
"package": {
"ecosystem": "RubyGems",
"name": "actionpack"
},
"ranges": [
{
"type": "ECOSYSTEM",
"events": [
{
"introduced": "5.2.0"
},
{
"fixed": "7.0.8.7"
}
]
}
]
},
{
"package": {
"ecosystem": "RubyGems",
"name": "actionpack"
},
"ranges": [
{
"type": "ECOSYSTEM",
"events": [
{
"introduced": "7.1.0"
},
{
"fixed": "7.1.5.1"
}
]
}
]
},
{
"package": {
"ecosystem": "RubyGems",
"name": "actionpack"
},
"ranges": [
{
"type": "ECOSYSTEM",
"events": [
{
"introduced": "7.2.0"
},
{
"fixed": "7.2.2.1"
}
]
}
]
},
{
"package": {
"ecosystem": "RubyGems",
"name": "actionpack"
},
"ranges": [
{
"type": "ECOSYSTEM",
"events": [
{
"introduced": "8.0.0"
},
{
"fixed": "8.0.0.1"
}
]
}
]
}
],
"references": [
{
"type": "WEB",
"url": "https://github.com/rails/rails/security/advisories/GHSA-vfm5-rmrh-j26v"
},
{
"type": "PACKAGE",
"url": "https://github.com/rails/rails"
}
],
"database_specific": {
"cwe_ids": [
"CWE-79"
],
"severity": "LOW",
"github_reviewed": true,
"github_reviewed_at": "2024-12-10T22:42:27Z",
"nvd_published_at": null
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
{
"schema_version": "1.4.0",
"id": "GHSA-vm32-9rqf-rh3r",
"modified": "2024-12-10T22:42:41Z",
"published": "2024-12-10T22:42:41Z",
"aliases": [
"CVE-2024-53866"
],
"summary": "pnpm no-script global cache poisoning via overrides / `ignore-scripts` evasion",
"details": "### Summary\n\npnpm seems to mishandle overrides and global cache:\n1. Overrides from one workspace leak into npm metadata saved in global cache\n2. npm metadata from global cache affects other workspaces\n3. installs by default don't revalidate the data (including on first lockfile generation)\n\nThis can make workspace A (even running with `ignore-scripts=true`) posion global cache and execute scripts in workspace B\n\nUsers generally expect `ignore-scripts` to be sufficient to prevent immediate code execution on install (e.g. when the tree is just repacked/bundled without executing it).\n\nHere, that expectation is broken\n\n### Details\n\nSee PoC.\n\nIn it, overrides from a single run of A get leaked into e.g. `~/Library/Caches/pnpm/metadata/registry.npmjs.org/rimraf.json` and persistently affect all other projects using the cache\n\n### PoC\n\nPostinstall code used in PoC is benign and can be inspected in <https://www.npmjs.com/package/ponyhooves?activeTab=code>, it's just a `console.log`\n\n1. Remove store and cache\n On mac: `rm -rf ~/Library/Caches/pnpm ~/Library/pnpm/store`\n This step is not required in general, but we'll be using a popular package for PoC that's likely cached\n2. Create `A/package.json`:\n ```json\n {\n \"name\": \"A\",\n \"pnpm\": { \"overrides\": { \"rimraf>glob\": \"npm:ponyhooves@1\" } },\n \"dependencies\": { \"rimraf\": \"6.0.1\" }\n }\n ```\n Install it with `pnpm i --ignore-scripts` (the flag is not required, but the point of the demo is to show that it doesn't help)\n4. Create `B/package.json`:\n ```json\n {\n \"name\": \"B\",\n \"dependencies\": { \"rimraf\": \"6.0.1\" }\n }\n ```\n Install it with `pnpm i`\n\nResult:\n```console\nPackages: +3\n+++\nProgress: resolved 3, reused 3, downloaded 0, added 3, done\nnode_modules/.pnpm/[email protected]/node_modules/ponyhooves: Running postinstall script, done in 51ms\n\ndependencies:\n+ rimraf 6.0.1\n\nDone in 1.4s\n```\n\nAlso, that code got leaked into another project and it's lockfile now! \n\n### Impact\n\nGlobal state integrity is lost via operations that one would expect to be secure, enabling subsequently running arbitrary code execution on installs\n\nAs a work-around, use separate cache and store dirs in each workspace\n",
"severity": [
{
"type": "CVSS_V4",
"score": "CVSS:4.0/AV:N/AC:H/AT:P/PR:N/UI:P/VC:N/VI:L/VA:N/SC:H/SI:H/SA:H"
}
],
"affected": [
{
"package": {
"ecosystem": "npm",
"name": "pnpm"
},
"ranges": [
{
"type": "ECOSYSTEM",
"events": [
{
"introduced": "0"
},
{
"fixed": "9.15.0"
}
]
}
]
}
],
"references": [
{
"type": "WEB",
"url": "https://github.com/pnpm/pnpm/security/advisories/GHSA-vm32-9rqf-rh3r"
},
{
"type": "ADVISORY",
"url": "https://nvd.nist.gov/vuln/detail/CVE-2024-53866"
},
{
"type": "WEB",
"url": "https://github.com/pnpm/pnpm/commit/11afcddea48f25ed5117a87dc1780a55222b9743"
},
{
"type": "PACKAGE",
"url": "https://github.com/pnpm/pnpm"
}
],
"database_specific": {
"cwe_ids": [
"CWE-346",
"CWE-426"
],
"severity": "MODERATE",
"github_reviewed": true,
"github_reviewed_at": "2024-12-10T22:42:41Z",
"nvd_published_at": "2024-12-10T18:15:42Z"
}
}

0 comments on commit 82a9c26

Please sign in to comment.