Soumettre #1044007: Magma master @ 76d9dc0ebc (Magma 1.8.0-era) Missing Authorizationinformation

TitreMagma master @ 76d9dc0ebc (Magma 1.8.0-era) Missing Authorization
Description================================================================================ REPORT ID : MAGMA-2026-005 TITLE : Magma NMS -> Orc8r full compromise chain, and disclosure record VENDOR : Magma (Linux Foundation) PRODUCTS : Magma NMS (magmalte), Magma Orc8r (controller/obsidian) VERSION : master @ 76d9dc0ebc (Magma 1.8.0-era) REPORTER : Aymen Benlamari (GitHub: aymencdm) EMBARGO : 2026-11-09 ================================================================================ 0. SCOPE Umbrella report for four independent entries; not a fifth vulnerability and no CVE request. It maps the entries, describes the chain, gives the scores, and records coordination. 1. ENTRY MAP MAGMA-2026-001 (#1043997) Host Routes RBAC Bypass (NMS) MAGMA-2026-002 (#1044004) Stored XSS via Organization Name (NMS) MAGMA-2026-003 (#1044005) Hardcoded gRPC Client-Cert Token (Orc8r) MAGMA-2026-004 (#1044006) Certificate Spoofing via HTTP Header (Orc8r) 2. CHAIN Start: one valid NMS role=0 USER account in the host organization. No SUPERUSER, client certificate, Orc8r account or internal network position. Step 1 - 001 (#1043997), CWE-862 POST /host/organization/async/<target>/add_user with "role":3. hostOrgMiddleware checks only organization.isHostOrg, never req.user.role. Result: role=3 SUPERUSER in the target organization; the attacker logs in. Step 2 - 003 (#1044005), CWE-798 From a position that can reach the Orc8r internal gRPC ports, send x-magma-client-cert-serial: 7ZZXAF7CAETF241KL22B8YRR7B5UF401. The value is a compile-time constant shared by every deployment. It is accepted by certifier, accessd, configurator and state. certifier.GetAll dumps every operator serial, including admin_operator. Step 3 - 004 (#1044006), CWE-290 Obsidian derives operator identity from the client-supplied X-Magma-Client-Cert-Serial header without verifying mTLS termination. Send the admin_operator serial to /magma/v1/networks and the API authenticates the request as that operator, with full read/write access. Result: full Orc8r control-plane compromise - networks, tiers, gateways, ACLs, gateway commands and access to the Orc8r mTLS material. A SUPERUSER already reaches Orc8r via the NMS mTLS proxy; Steps 2-3 add a direct, persistent path from any internal foothold without Step 1. Hence separate entries. 3. EVIDENCE Phase 1: [email protected] (role=0, host org) POSTed add_user with "role":3; HTTP 200, user object with "role":3. The new account logged in and listed all users in the target organization. Phase 2: grpcurl against controller:9186 with the token returned the certificate map containing "operator":"admin_operator"; accessd:9191 ListOperators succeeded with the same token. Phase 3: curl with the admin_operator serial on :9081 returned HTTP 200 for GET /magma/v1/networks and HTTP 201 for POST /magma/v1/networks. XSS (002): an org name containing xss-</script><script>alert(document.cookie)</script> was stored verbatim and rendered unescaped on /nms for every member. 4. CHAIN CVSS 3.1 - 9.9 CRITICAL Vector: CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H Metric Value Why AV N HTTP request to the NMS from the network. AC L Deterministic sequence; no race, timing or memory grooming. PR L One role=0 account in the host organization. UI N No victim interaction at any step. S C Escalation crosses from NMS user authority into Orc8r. C H Users, networks, subscriber data, serials, ACLs, state. I H Users, networks, ACLs, entities and gateway config. A H Users, networks and services can be deleted or disrupted. 5. CHAIN CVSS 4.0 - 9.4 CRITICAL Vector: CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H Metric Value Why AV N Network start (NMS HTTP). AC L Deterministic sequence; no special conditions. AT N No attack requirements beyond the low-privilege account. PR L Role=0 NMS account. UI N No user interaction. VC H Full read of NMS and Orc8r data. VI H Full write across both. VA H Resources and services can be disrupted in both. SC H Orc8r is a subsequent system with its own authority. SI H Orc8r configuration can be modified. SA H Orc8r services and gateways can be disrupted. Why not 10.0: CVSS 4.0 requires PR:N for 10.0 with all-high impacts. The chain starts with a low-privilege account, so PR is L and the score is 9.4. The 3.1 score is 9.9 because S:C captures the scope change. 6. DISCLOSURE AND MAINTAINER DISCUSSION 6.1 Timeline 2026-09-10 Reported to [email protected] after no response from [email protected], the address named in SECURITY.md. Jordan Vrtanoski acknowledged the same day. 2026-09-10 Reporter split the report into three root causes (RBAC, gRPC token, cert header) and supplied PoC evidence. 2026-09-16 Jordan reported that Conrado Gobato and Fernando Francisco were reproducing and validating the findings, and suggested the reporter open the advisories. Reporter opened GHSA-c35w-v4hx-v834, GHSA-vwm9-4rf4-xfwx and GHSA-3227-q56x-v5gp (all private). 2026-10-03 Reporter confirmed the XSS live in a browser and supplied the full report and PoC evidence. 2026-10-06 Conrado recommended a separate advisory for the XSS citing the RBAC chain; reporter opened GHSA-cww9-5hqf-996q (private). 2026-10-14 Jordan reported that he could not see any advisories. The publisher list showed only the "magma owners" team and @tmdzk; Jordan, Conrado, Fernando and Alexandre are not on it, so they cannot accept the advisories or request CVEs. 2026-10-16 Reporter contacted the public People-page contacts. Scott Moeller replied that he is a member, not an owner, and no longer involved in administration. A Linux Foundation program manager confirmed that Magma is in maintenance mode with no active workers and suggested a contact at Meta who is not involved with Magma. 2026-10-19 With no reachable repository admin, the reporter filed this package with VulDB (CNA) under embargo. 6.2 Governance blocker GitHub private advisories on a repository can only be accepted, published, and used to request a CVE by users with repository admin/owner permission. The publisher list for magma/magma contains only the "magma owners" team and @tmdzk. The engineers who reproduced and validated the findings (Conrado Gobato, Fernando Francisco, Alexandre Loureiro, Gabriel Ramos) are not on the list. Jordan Vrtanoski could not see the advisories at all. Scott Moeller is a member, not an owner. The Linux Foundation confirms the project is in maintenance mode with no active workers. Consequences: the four advisories remain in Triage; no CVE can be requested through GitHub; the Connect 5G engineers cannot be added as collaborators by the reporter, who is not an organization owner. The reporter has held public disclosure since 2026-09-10. 6.3 Why VulDB Magma has no CNA; the CVE CNA list contains neither Magma nor the Linux Foundation as a CNA for this project. VulDB is a CNA and covers vulnerabilities reported to it that are not in another CNA's scope. VulDB can reserve a CVE before publishing, preserving the embargo. 6.4 Status Advisories: in Triage, inaccessible to the maintainers who validated the findings. No public advisory, CVE, or release is associated with these findings. Public disclosure: none. 7. REFERENCES MAGMA-2026-001 (#1043997) Host Routes RBAC Bypass MAGMA-2026-002 (#1044004) Stored XSS via Organization Name MAGMA-2026-003 (#1044005) Hardcoded gRPC Client-Certificate Token MAGMA-2026-004 (#1044006) Client Certificate Spoofing via HTTP Header https://github.com/magma/magma https://github.com/magma/magma/blob/master/SECURITY.md Private GHSAs (Triage, not public references): GHSA-c35w-v4hx-v834 GHSA-cww9-5hqf-996q GHSA-vwm9-4rf4-xfwx GHSA-3227-q56x-v5gp 8. AUTHORIZATION All testing was performed against local Docker lab instances built from the public Magma source tree. The chain creates a network and a user as evidence; use a disposable environment. Do not run any proof of concept against a system you do not own or have explicit written authorization to test. The hardcoded token is a public source constant, identical across deployments. No real credentials, cookies, private keys or production data are included. ================================================================================
La source⚠️ https://github.com/aymencdm/magma_pocs/blob/main/05-chain-poc.sh
Utilisateur
 aymencdm (UID 101800)
Soumission19/10/2026 22:23 (il y a 26 jours)
Modérer14/11/2026 07:50 (25 days later)
StatutDupliqué
Entrée VulDB437420 [Linux Foundation Magma jusqu’à 1.9.0 Host Middleware middleware.ts hostOrgMiddleware role élévation de privilèges]
Points0

Do you know our Splunk app?

Download it now for free!