CVE-2017-18367 in libseccomp-golanginfo

Summary

by MITRE

libseccomp-golang 0.9.0 and earlier incorrectly generates BPFs that OR multiple arguments rather than ANDing them. A process running under a restrictive seccomp filter that specified multiple syscall arguments could bypass intended access restrictions by specifying a single matching argument.

If you want to get the best quality for vulnerability data then you always have to consider VulDB.

Analysis

by VulDB Data Team • 08/31/2025

The vulnerability identified as CVE-2017-18367 affects the libseccomp-golang library version 0.9.0 and earlier, representing a critical flaw in the generation of Berkeley Packet Filter (BPF) instructions used for seccomp filter implementation. This issue stems from a fundamental logical error in how multiple syscall arguments are processed within the security framework, creating a significant bypass opportunity for malicious processes attempting to evade restrictive access controls.

The technical flaw manifests in the incorrect handling of BPF instruction generation where the library fails to properly implement logical AND operations between multiple syscall arguments. Instead of requiring all specified arguments to match simultaneously, the flawed implementation ORs these arguments together, meaning that if any single argument matches the filter criteria, the entire rule is satisfied. This logical error directly violates the intended security model of seccomp filters, which are designed to enforce strict access controls by requiring precise argument combinations to permit system calls.

This vulnerability operates at the intersection of system-level security and application programming interfaces, where the compromised library is responsible for translating high-level seccomp filter specifications into low-level BPF bytecode. The operational impact is severe as processes running under restrictive seccomp filters can exploit this flaw by crafting system call invocations that match only one of several specified arguments, thereby bypassing the intended security restrictions. The flaw essentially allows attackers to circumvent security policies that were designed to prevent specific combinations of arguments from being passed to system calls, potentially enabling unauthorized access to system resources.

The security implications extend beyond simple argument matching, as this vulnerability can be leveraged to bypass critical security controls that depend on precise argument validation. When a seccomp filter is configured to restrict a syscall based on multiple arguments, such as a specific file path and permission mode, an attacker can exploit the OR logic to succeed with just one of these arguments, effectively neutralizing the security policy. This bypass mechanism represents a direct violation of the principle of least privilege and can enable privilege escalation, data access, or system manipulation attacks depending on the targeted system calls.

Organizations should prioritize immediate mitigation by upgrading to libseccomp-golang version 0.9.1 or later, which contains the corrected implementation of BPF instruction generation. Additionally, security teams should review existing seccomp filter configurations to identify potential reliance on the flawed OR logic and consider implementing additional monitoring for unusual system call patterns that might indicate exploitation attempts. The vulnerability aligns with CWE-704 in the Common Weakness Enumeration, which covers incorrect implementation of security controls, and represents a significant concern for ATT&CK technique T1055 related to process injection and privilege escalation.

Reservation

04/24/2019

Moderation

accepted

CPE

ready

EPSS

0.00438

KEV

no

Activities

very low

Sources

Are you interested in using VulDB?

Download the whitepaper to learn more about our service!