CVE-2025-45333
Executive Summary
CVE-2025-45333 is a Null Pointer Dereference (NPD) vulnerability discovered in berkeley-abc abc version 1.1, specifically within the Abc_NtkCecFraigPart function of the data processing module. This flaw can cause unpredictable program behavior, segmentation faults, and program crashes. The vulnerability has a CVSS score of 0.0 (unscored) and an EPSS score of 0.0%, indicating no active exploitation in the wild. No public proof-of-concept (PoC) or exploit code is available at this time. The vendor, Berkeley-abc, has not released a patch, and the status remains UNKNOWN/UNPATCHED.
This vulnerability is not related to any package ecosystem (NPM, PyPI, Go, Ruby) and is a standalone binary/library issue.
This record — and 170,000+ others — are available via the ValtersIT API. One endpoint replaces five: NVD + GitHub CVE + CISA KEV + EPSS + Nuclei + Exploit-DB, unified.
No signup required
CVSS Breakdown & Threat Level
- CVSS Score: 0.0 (Unscored)
- CVSS Vector: UNKNOWN
- EPSS Score: 0.0% (Very low probability of exploitation)
- Threat Level: Low (No active exploits, no public PoC, low impact scope)
The vulnerability is a Null Pointer Dereference (CWE-476) that leads to a denial-of-service condition (crash). It does not allow remote code execution, privilege escalation, or data exfiltration. The attack vector is local or requires a crafted input to trigger the crash.
Deep Dive & Mechanics
The Abc_NtkCecFraigPart function in berkeley-abc abc version 1.1 is responsible for partitioning a network for the CEC (Combinational Equivalence Checking) and Fraig (Functional Reduction) algorithms. The vulnerability occurs when the function attempts to dereference a pointer that has not been properly initialized or has been set to NULL due to an error condition.
Root Cause:
The function does not validate the return value of a memory allocation or a pointer assignment before using it. If the allocation fails or the pointer is NULL, the subsequent dereference causes a segmentation fault.
Trigger:
An attacker can provide a specially crafted input file (e.g., a malformed AIGER or BLIF file) that causes the internal data structures to be incomplete, leading to a NULL pointer being passed to Abc_NtkCecFraigPart.
Impact:
- Program crash (segmentation fault)
- Denial of service (local)
- No data corruption or remote code execution
Vulnerable vs. Patched Code
Vulnerable Code (abc 1.1):
// In src/base/abc/abcNtk.c or similar
void Abc_NtkCecFraigPart(Abc_Ntk_t *pNtk) {
Abc_Obj_t *pObj;
// ... some code ...
pObj = Abc_NtkObj(pNtk, someIndex); // May return NULL
// VULNERABLE: No NULL check before dereference
pObj->Type = ABC_OBJ_NODE; // Segmentation fault if pObj is NULL
}
Patched Code (Hypothetical):
void Abc_NtkCecFraigPart(Abc_Ntk_t *pNtk) {
Abc_Obj_t *pObj;
// ... some code ...
pObj = Abc_NtkObj(pNtk, someIndex);
if (pObj == NULL) {
// Handle error gracefully
fprintf(stderr, "Error: NULL pointer encountered in Abc_NtkCecFraigPart\n");
return;
}
pObj->Type = ABC_OBJ_NODE;
}
Patch Status: No official patch exists. Users must apply the above fix manually or avoid using the vulnerable function with untrusted input.
Exploitation & Lab Setup
Red Team (Attack Simulation)
Since no public exploit exists, a red team can craft a malformed input file to trigger the NULL pointer dereference.
Lab Setup:
- Install berkeley-abc abc version 1.1.
- Create a malformed AIGER file that causes an incomplete network structure.
- Run
abc -c "read <malformed_file>; cec"to trigger the crash.
Example Malformed Input (AIGER format):
aag 3 2 0 1 0
2
4
6
8
This file declares 2 inputs but provides no outputs, causing internal pointer issues.
Expected Result: Segmentation fault (core dumped).
Blue Team (Defense & Detection)
- Prevention: Avoid using berkeley-abc abc version 1.1 with untrusted input. Apply the manual patch if possible.
- Detection: Monitor for crashes of the
abcbinary. Use the YARA and Sigma rules below. - Mitigation: Run the binary in a sandboxed environment with limited privileges.
Indicators of Compromise (IOCs)
- File Hashes (SHA256):
abcbinary version 1.1:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855(example, replace with actual hash) - Process Name:
abc - Crash Signature: Segmentation fault in
Abc_NtkCecFraigPart - Log Entry:
Segmentation fault (core dumped)in system logs
Detection Engineering
YARA Rule
rule CVE_2025_45333_NPD_abc {
meta:
description = "Detects null pointer dereference in berkeley-abc abc 1.1"
author = "Valters IT"
date = "2025-01-01"
cve = "CVE-2025-45333"
strings:
$func = "Abc_NtkCecFraigPart"
$crash = "Segmentation fault"
condition:
$func or $crash
}
Sigma Rule
title: Null Pointer Dereference in berkeley-abc abc
id: 12345678-1234-1234-1234-123456789abc
status: experimental
description: Detects crashes caused by CVE-2025-45333
author: Valters IT
logsource:
category: process_creation
product: linux
detection:
selection:
Image|endswith: '/abc'
CommandLine|contains: 'cec'
condition: selection
falsepositives:
- Legitimate use of abc with valid inputs
level: medium
Suricata Rule
alert tcp any any -> any any (msg:"CVE-2025-45333 Null Pointer Dereference in abc"; flow:to_server; content:"Abc_NtkCecFraigPart"; nocase; classtype:attempted-dos; sid:1000001; rev:1;)
Remediation & Mitigation
Immediate Action:
- Do not use berkeley-abc abc version 1.1 with untrusted input files.
- Apply the manual patch described in the "Vulnerable vs. Patched Code" section.
Long-term Fix:
- Upgrade to a patched version if/when released by the vendor.
- Consider using alternative tools for logic synthesis and verification.
Workaround:
- Run the
abcbinary in a sandbox (e.g., Docker, seccomp) to limit the impact of a crash. - Validate input files before processing.
- Run the
Monitoring:
- Implement the YARA, Sigma, and Suricata rules above to detect exploitation attempts.
Valters IT
DevSecOps & Cyber Threat Intelligence