{"data":{"id":"73c884c5-41e7-4785-833e-93d2f4c0e6f6","title":"GHSA-5mj8-gf6m-fhw8: 9Router has an Authentication Bypass in Public LLM API via Spoofable X-9r-Real-Ip Header","summary":"9router decides whether a request is local by trusting the client-supplied X-9r-Real-Ip header in isLocalRequest() within src/dashboardGuard.js. When the app runs without custom-server.js, which normally strips and regenerates that header, an unauthenticated remote attacker can send X-9r-Real-Ip: 127.0.0.1 to reach /api/v1/* without an API key. The reported impact includes unauthorized use of the owner's configured LLM provider connections and consumption of paid API credits. The issue was verified on 9router-app 0.5.4 (Next.js 16.2.9) using GET /api/v1/models.","solution":"Do not trust X-9r-Real-Ip (or any X-9r-* header) received directly from clients. Derive the client address for authorization from a trusted transport-level source, such as req.socket.remoteAddress. If custom-server.js is required for the security model, fail closed when its trusted marker is absent and strip or reject inbound client-supplied X-9r-* headers at the edge. Document supported secure startup modes so the header cannot be attacker-controlled.","labels":["security"],"sourceUrl":"https://github.com/advisories/GHSA-5mj8-gf6m-fhw8","publishedAt":"2026-09-22T16:34:06.000Z","cveId":"CVE-2026-56681","cweIds":null,"cvssScore":null,"cvssSeverity":"high","severity":"high","attackType":["other"],"issueType":"vulnerability","affectedPackages":["9router@<= 0.5.4 (fixed: 0.5.8)"],"affectedPackageNames":["9router"],"affectedPackageRefs":["npm:9router"],"affectedVendors":[],"affectedVendorsRaw":["9router","9router-app 0.5.4","public LLM API"],"classifierModel":"claude-haiku-5-5","classifierPromptVersion":"v4","summaryPromptVersion":"v2","headline":null,"headlinePromptVersion":null,"cvssVector":null,"attackVector":null,"attackComplexity":null,"privilegesRequired":null,"userInteraction":null,"exploitMaturity":"unknown","epssScore":0.01114,"epssCheckedAt":"2026-11-09T18:09:51.972Z","kevDateAdded":null,"advisoryAliases":["GHSA-5mj8-gf6m-fhw8"],"affectedPackagesSource":null,"affectedPackagesCheckedAt":null,"patchAvailable":true,"disclosureDate":"2026-09-22T16:34:06.000Z","fixReleasedAt":"2026-06-21T11:07:26.021Z","daysToFix":-93,"fixCheckedAt":"2026-10-29T21:30:21.439Z","capecIds":null,"crossRefCount":0,"attackSophistication":"trivial","impactType":["confidentiality","integrity"],"aiComponentTargeted":"api","llmSpecific":true,"classifierConfidence":0.9,"researchCategory":null,"atlasIds":null,"fixes":[{"ecosystem":"npm","name":"9router","fixedVersion":"0.5.8","matchedVersion":"0.5.8","fixReleasedAt":"2026-06-21T11:07:26.021Z","daysToFix":-93,"match":"ecosystem","source":"registry","status":"found","checkedAt":"2026-10-29T21:30:21.294Z"}]}}