| Title | The Trusted Domain Project OpenDMARC 1.4.2 Out-of-Bounds Read |
|---|
| Description | OpenDMARC contains an off-by-one error in `opendmarc_util_cleanup()` that can result in an out-of-bounds read. The function accepts input whose length is equal to the destination buffer size, leaving no space for a terminating NUL byte. The returned buffer is subsequently processed as a C string.
In the DMARC record parser, a crafted 32-character `rf=` value can therefore cause string-processing code to read beyond the end of a 32-byte stack buffer. Because DMARC records are retrieved from DNS under the sending domain’s control, a remote unauthenticated attacker can trigger the issue by publishing a malicious record and sending a message from that domain.
Successful exploitation may crash the DMARC-processing component and cause a denial of service. Potential information disclosure from adjacent stack memory has not been demonstrated. |
|---|
| Source | ⚠️ https://weitongli.com/share/opendmarc-cleanup-off-by-one.html |
|---|
| User | WeitongLi (UID 100239) |
|---|
| Submission | 08/06/2026 10:22 (2 months ago) |
|---|
| Moderation | 09/27/2026 13:33 (2 months later) |
|---|
| Status | Accepted |
|---|
| VulDB entry | 410884 [Trusted Domain Project OpenDMARC up to 1.4.2 DMARC Record Parser opendmarc_util.c opendmarc_util_cleanup off-by-one] |
|---|
| Points | 20 |
|---|