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

Goal: 1000 CNY · Raised: 1000 CNY

100.0%

CVE-2024-54152 PoC — Angular 代码注入漏洞

Source
Associated Vulnerability
Title:Angular 代码注入漏洞 (CVE-2024-54152)
Description:Angular是一个开发平台。用于使用 Typescript / JavaScript 和其他语言构建移动和桌面 Web 应用程序。 Angular 1.4.2及之前版本存在代码注入漏洞,该漏洞源于攻击者可以编写恶意表达式来突破沙箱,从而在系统上执行任意代码。
Readme
# ⚙️🔨 IN PROGRESS

## CVE-2024-54152 POC  

Angular Expressions provides expressions for the Angular.JS web framework as a standalone module. Prior to version 1.4.3, an attacker can write a malicious expression that escapes the sandbox to execute arbitrary code on the system. With a more complex (undisclosed) payload, one can get full access to Arbitrary code execution on the system. The problem has been patched in version 1.4.3 of Angular Expressions. Two possible workarounds are available. One may either disable access to `__proto__` globally or make sure that one uses the function with just one argument.

### Proof of Concept

To demonstrate the vulnerability, we have created a simple Node.js application that uses the vulnerable version of Angular Expressions. The application exposes an endpoint `/parse` that evaluates user-provided expressions.

#### Running the Vulnerable Application

1. **Clone the repository**:
    ```sh
    git clone https://github.com/example/CVE-2024-54152-poc.git
    cd CVE-2024-54152-poc
    ```

2. **Build and run the Docker container**:
    ```sh
    docker build -t vulnerable-app .
    docker run -p 8080:8080 vulnerable-app
    ```

3. **Send the malicious payload**:
    You can use either the provided Go or Python script to send the payload.

    - Using Go:
        ```sh
        go run poc.go
        ```

    - Using Python:
        ```sh
        python3 poc.py
        ```

#### Expected Output

The server should execute the payload and return the result of the `id` command, demonstrating arbitrary code execution.

### Mitigation

To mitigate this vulnerability, update Angular Expressions to version 1.4.3 or later. Alternatively, you can disable access to `__proto__` globally or ensure that the function is used with only one argument.

### References

- [Angular Expressions GitHub Repository](https://github.com/peerigon/angular-expressions)
- [CVE-2024-54152 Details](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2024-54152)


File Snapshot

[4.0K] /data/pocs/c3e692988c5d8f4947ee3a15dc703ddc278f91f2 ├── [ 150] Dockerfile ├── [ 839] poc.go ├── [ 621] poc.py ├── [2.0K] README.md └── [4.0K] vuln_app ├── [ 308] config.json └── [ 683] server.js 1 directory, 6 files
Shenlong Bot has cached this for you
Remarks
    1. It is advised to access via the original source first.
    2. If the original source is unavailable, please email f.jinxu#gmail.com for a local snapshot (replace # with @).
    3. Shenlong has snapshotted the POC code for you. To support long-term maintenance, please consider donating. Thank you for your support.