Goal Reached Thanks to every supporter — we hit 100%!

Goal: 1000 CNY · Raised: 1359 CNY

100%

CVE-2025-1974 PoC — ingress-nginx admission controller RCE escalation

Source
Associated Vulnerability
Title: ingress-nginx admission controller RCE escalation (CVE-2025-1974)
Description:A security issue was discovered in Kubernetes where under certain conditions, an unauthenticated attacker with access to the pod network can achieve arbitrary code execution in the context of the ingress-nginx controller. This can lead to disclosure of Secrets accessible to the controller. (Note that in the default installation, the controller can access all Secrets cluster-wide.)
Readme
# CVE-2025-1974_IngressNightmare

# poc IngressNightmare Script

A Python script to automate sending JSON payloads to a list of IPs via `curl`, capturing responses and splitting them into success and failure XML reports.

## Features

* Sends HTTPS `POST` requests with a JSON payload to multiple IP addresses.
* Configurable JSON payload file, port, timeout, delay between requests.
* Cleans and captures `curl` stderr (removes progress meter noise).
* Classifies requests as **success**, **failed**, **timeout**, or **error** based on return code and HTTP status.
* Generates two XML reports:

  * **Success** report containing all successful requests.
  * **Failure** report containing all failed, timed out, or errored requests.
* Detailed per-request logging to the console.

## Prerequisites

* Python 3.6+
* `curl` installed on your system and available in `PATH`.
* (Optional) Access to modify firewall or network settings to allow outbound HTTPS.

## Installation

1. Clone the repository or download the script:

   ```bash
   git clone https://github.com/abrewer251/CVE-2025-1974_IngressNightmare_PoC.git
   cd autorun
   ```
2. Ensure the script is executable (optional):

   ```bash
   chmod +x poc.py
   ```

## Usage

```bash
python3 poc.py [OPTIONS] <ip_list_file>
```

### Positional Argument

* `<ip_list_file>`: Path to a text file containing one IP address per line.

### Options

| Option                     | Description                                             | Default           |
| -------------------------- | ------------------------------------------------------- | ----------------- |
| `-h, --help`               | Show this help message and exit                         | —                 |
| `-j, --json <file>`        | JSON payload filename to send (with `@` syntax)         | `poc.json`        |
| `-p, --port <port>`        | Target port on each IP                                  | `8443`            |
| `-t, --timeout <seconds>`  | Timeout in seconds for each `curl` call                 | `15`              |
| `-d, --delay <seconds>`    | Delay in seconds between successive requests            | `1.0`             |
| `-s, --success <filename>` | Output XML filename for successful requests             | `4-3_Success.xml` |
| `-f, --failure <filename>` | Output XML filename for failed/timeouted/error requests | `4-3_Failure.xml` |

## Examples

1. **Basic run** with defaults:

   ```bash
   python3 poc.py ips.txt
   ```

   Sends `poc.json` to each IP on port `8443`, waits up to 15s, delays 1s between calls, writes `4-3_Success.xml` and `4-3_Failure.xml`.

2. **Custom payload and port**:

   ```bash
   python3 poc.py -j payload.json -p 9443 ips.txt
   ```

3. **Shorter timeout and faster requests**:

   ```bash
   python3 poc.py -t 5 -d 0.5 ips.txt
   ```

4. **Custom report filenames**:

   ```bash
   python3 poc.py -s success_report.xml -f error_report.xml ips.txt
   ```

## Output

* **Console**: Live logs for each request with IP, status, and error message if any.
* **XML files**: Structured reports with details of every request, suitable for parsing or integration.

## License

This project is licensed under the MIT License. See [LICENSE](LICENSE) for details.

---

*Generated by Autorun script template.*
File Snapshot

Log in to view the POC file snapshot cached by Shenlong Bot

Log in to view
Remarks
    1. It is advised to access via the original source first.
    2. Local POC snapshots are reserved for subscribers — if the original source is unavailable, the local mirror is part of the paid plan.
    3. Mirroring, verifying, and maintaining this POC archive takes ongoing effort, so local snapshots are a paid feature. Your subscription keeps the archive online — thank you for the support. View subscription plans →