diff --git a/advisories/github-reviewed/2025/04/GHSA-4q56-crqp-v477/GHSA-4q56-crqp-v477.json b/advisories/github-reviewed/2025/04/GHSA-4q56-crqp-v477/GHSA-4q56-crqp-v477.json new file mode 100644 index 00000000000..7fe328ff861 --- /dev/null +++ b/advisories/github-reviewed/2025/04/GHSA-4q56-crqp-v477/GHSA-4q56-crqp-v477.json @@ -0,0 +1,80 @@ +{ + "schema_version": "1.4.0", + "id": "GHSA-4q56-crqp-v477", + "modified": "2025-04-01T22:23:33Z", + "published": "2025-04-01T22:23:33Z", + "aliases": [ + "CVE-2025-31137" + ], + "summary": "Remix and React Router allow URL manipulation via Host / X-Forwarded-Host headers", + "details": "### Impact\n\nWe received a report about a vulnerability in Remix/React Router that affects all Remix 2 and React Router 7 consumers using the Express adapter. Basically, this vulnerability allows anyone to spoof the URL used in an incoming `Request` by putting a URL pathname in the port section of a URL that is part of a `Host` or `X-Forwarded-Host` header sent to a Remix/React Router request handler.\n\n### Patches\n\nThis issue has been patched and released in Remix 2.16.3 React Router 7.4.1.\n\n### Credits\n\n- Rachid Allam (zhero;)\n- Yasser Allam (inzo_)", + "severity": [ + { + "type": "CVSS_V3", + "score": "CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H" + } + ], + "affected": [ + { + "package": { + "ecosystem": "npm", + "name": "@react-router/express" + }, + "ranges": [ + { + "type": "ECOSYSTEM", + "events": [ + { + "introduced": "7.0.0" + }, + { + "fixed": "7.4.1" + } + ] + } + ] + }, + { + "package": { + "ecosystem": "npm", + "name": "@remix-run/express" + }, + "ranges": [ + { + "type": "ECOSYSTEM", + "events": [ + { + "introduced": "2.11.1" + }, + { + "fixed": "2.16.3" + } + ] + } + ] + } + ], + "references": [ + { + "type": "WEB", + "url": "https://github.com/remix-run/react-router/security/advisories/GHSA-4q56-crqp-v477" + }, + { + "type": "ADVISORY", + "url": "https://nvd.nist.gov/vuln/detail/CVE-2025-31137" + }, + { + "type": "PACKAGE", + "url": "https://github.com/remix-run/react-router" + } + ], + "database_specific": { + "cwe_ids": [ + "CWE-444" + ], + "severity": "HIGH", + "github_reviewed": true, + "github_reviewed_at": "2025-04-01T22:23:33Z", + "nvd_published_at": "2025-04-01T19:15:45Z" + } +} \ No newline at end of file diff --git a/advisories/github-reviewed/2025/04/GHSA-c2c3-pqw5-5p7c/GHSA-c2c3-pqw5-5p7c.json b/advisories/github-reviewed/2025/04/GHSA-c2c3-pqw5-5p7c/GHSA-c2c3-pqw5-5p7c.json new file mode 100644 index 00000000000..5272d1a8ce4 --- /dev/null +++ b/advisories/github-reviewed/2025/04/GHSA-c2c3-pqw5-5p7c/GHSA-c2c3-pqw5-5p7c.json @@ -0,0 +1,61 @@ +{ + "schema_version": "1.4.0", + "id": "GHSA-c2c3-pqw5-5p7c", + "modified": "2025-04-01T22:23:49Z", + "published": "2025-04-01T22:23:49Z", + "aliases": [ + "CVE-2025-31135" + ], + "summary": "Go-Guerrilla SMTP Daemon allows the PROXY command to be sent multiple times", + "details": "### Summary\n\nThe PROXY command is accepted multiple times, allowing a client to spoof its IP address when the proxy protocol is being used.\n\n### Details\n\nWhen ProxyOn is enabled, [it looks like the PROXY command will be accepted multiple times](https://github.com/phires/go-guerrilla/blob/fca3b2d8957a746997c7e71fca39004f5c96e91f/server.go#L495), with later invocations overriding earlier ones. The proxy protocol only supports one initial PROXY header; anything after that is considered part of the exchange between client and server, so the client is free to send further PROXY commands with whatever data it pleases. go-guerrilla will treat these as coming from the reverse proxy, allowing a client to spoof its IP address.\n\nNote that the format of the PROXY header is [well-defined](https://www.haproxy.org/download/1.8/doc/proxy-protocol.txt). It probably shouldn't be treated as an SMTP command; parsing it the same way is likely to result in odd behavior and could lead to other vulnerabilities.\n\n### PoC\n\nI'm working on writing a PR to fix this vulnerability. It'll include a unit test that will serve as a PoC on the current version.\n\n### Impact\n\nAny instance with `ProxyOn` enabled (`proxyon` in the JSON config) is affected.\n\nAs far as I'm able to tell, the impact is limited to spoofing the `RemoteIP` field. This isn't ideal, but it probably has less practical impact on an MTA than, say, a web server.", + "severity": [ + { + "type": "CVSS_V3", + "score": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N" + } + ], + "affected": [ + { + "package": { + "ecosystem": "Go", + "name": "github.com/phires/go-guerrilla" + }, + "ranges": [ + { + "type": "ECOSYSTEM", + "events": [ + { + "introduced": "0" + }, + { + "fixed": "1.6.7" + } + ] + } + ] + } + ], + "references": [ + { + "type": "WEB", + "url": "https://github.com/phires/go-guerrilla/security/advisories/GHSA-c2c3-pqw5-5p7c" + }, + { + "type": "WEB", + "url": "https://github.com/phires/go-guerrilla/commit/7673947f2d5204a135d7ae0b7f80759e548abee6" + }, + { + "type": "PACKAGE", + "url": "https://github.com/phires/go-guerrilla" + } + ], + "database_specific": { + "cwe_ids": [ + "CWE-20" + ], + "severity": "MODERATE", + "github_reviewed": true, + "github_reviewed_at": "2025-04-01T22:23:49Z", + "nvd_published_at": null + } +} \ No newline at end of file