Where
-Infinity
0

Vendor Risk Score

See how libpcap compares to other vendors in security performance

View Risk Score →
Severity
7.5
AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H

infinte loop in libpcap before 1.10.7

1 / 3
Source: Microsoft
First published (updated )

To whom it may concern,

libpcap 1.10.7, which was released more than a month ago, among other things has fixed CVE-2026-6554 (an infinite loop). At the release time the only known attack vector was a rather uncommon configuration and the CVE scored CVSS 5.5 (medium).

Later it turned out that another attack vector exists and can trigger the same vulnerability using a more common configuration. Specifically, when a vulnerable version of libpcap compiles a filter expression that uses the "protochain" primitive (support for which is conditional, but enabled by default), the resulting filter program can enter an infinite loop whilst processing a crafted packet from a network or a file.

This is the same exact problem, so the new attack vector does not require a separate solution. However, CVE-2026-6554 now scores CVSS 7.5 (high), so package maintainers that have not yet updated libpcap have one more reason to do so.

Cheers.

-- Denis Ovsienko

Severity
8.7
3 Months
Out-of-bounds Read
AV:L/AC:L/PR:L/UI:N/S:C/C:L/I:H/A:H

In BPF instructions that load/store a value from/to a scratch memory register the register index is an unsigned 32-bit integer and must not exceed 15, but libpcap BPF interpreter does not validate the value. In particular uncommon use cases a crafted filter program can cause the interpreter to try reading and writing the OS process memory in the 16GiB starting at the current stack frame on 64-bit architectures and in the entire address space on 32-bit architectures.

1 / 3
Source: MITRE
First published (updated )
Severity
5.5
AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H

abort() in libpcap before 1.10.7 on an invalid BPF opcode

1 / 2
Source: Microsoft
First published (updated )
Severity
5
AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:N/A:N

OOBR in rpcap client in libpcap before 1.10.7

1 / 2
Source: Microsoft
First published (updated )

Hello all.

libpcap 1.10.7 has been published on 2026-09-05, its main focus is fixing of the seven vulnerabilities briefly discussed below. The full record of each CVE (not included in this message) gives a more detailed account of the problem and refers to a git commit with an even more detailed explanation.

All users are advised to update. For the CVE-2026-31912 fix to have effect, application that use the now deprecated bpffilter() must be migrated to pcapofflinefilter().

Also this release makes it clear that the remote packet capture code is still an experimental work in progress and is not yet safe enough for production or non-trusted environments. In practical terms, if you package libpcap and specify any non-default build options, please double-check the build does not enable remote packet capture by an accident. If it enables the feature deliberately, please make it clear to the package users that the package includes experimental code that has potential to be exploited remotely. This applies to both the client (libpcap) and the server (rpcapd) ends of an rpcap connection.

CVE-2026-0799 (reported by Include Security in 2018, sponsored by Mozilla under the Secure Open Source program, but reproduced only in 2026): In BPF instructions that load/store a value from/to a scratch memory register the register index is an unsigned 32-bit integer and must not exceed 15, but libpcap BPF interpreter does not validate the value. In particular uncommon use cases a crafted filter program can cause the interpreter to try reading and writing the OS process memory in the 16GiB starting at the current stack frame on 64-bit architectures and in the entire address space on 32-bit architectures.

CVE-2026-31912: libpcap BPF interpreter detects neither reaching the end of the filter program buffer due to lack of a return instruction nor executing a jump instruction with an offset that translates to a pointer outside of the buffer. In particular uncommon use cases a crafted filter program can cause the interpreter to try reading the OS process memory in the 32GiB around the buffer on 64-bit architectures and in the entire address space on 32-bit architectures.

CVE-2026-31911 (reported by FuzzAnything Organization): libpcap BPF interpreter calls abort() if it encounters a BPF instruction that has an invalid opcode. In particular uncommon use cases a crafted filter program can terminate the OS process.

CVE-2026-6244: libpcap BPF interpreter for the 'div #k' and 'mod #k' ALU instructions does not check whether the immediate value is zero. In particular uncommon use cases a crafted filter program can cause a division by zero.

CVE-2026-6554 (reported by Kaixuan LI): libpcap BPF interpreter treats the offset in the 'ja L' BPF instruction as a signed integer to implement looping via backward jumps, but it does not limit the number of loop iterations. In particular uncommon use cases a crafted filter program can cause the interpreter to loop infinitely.

CVE-2026-18313: rpcapd can allocate up to 65536 bytes per each RPCAPMSGUPDATEFILTERREQ or RPCAPMSGSTARTCAPREQ message received from the client, but it never frees the memory, so it leaks memory even under normal use. A malicious client can cause the server to leak memory substantially faster.

CVE-2026-18238: The rpcap client code that processes a RPCAPMSGPACKET message received from the server incorrectly validates its headers. A malicious server can send a crafted message and cause the client to treat up to 20 bytes of the client process memory beyond the end of the buffer as if it was a part of the captured packet.

-- Denis Ovsienko

Severity
4.3
AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:L

rpcapd can allocate up to 65536 bytes per each RPCAPMSGUPDATEFILTERREQ or RPCAPMSGSTARTCAPREQ message received from the client, but it never frees the memory, so it leaks memory even under normal use. A malicious client can cause the server to leak memory substantially faster.

1 / 2
Source: MITRE
First published (updated )

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203