This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Hurd".

The branch, master has been updated
       via  6067af1282154b55080a6a79171675a930681dfb (commit)
       via  3ac15b82dad3a8deb35d9974f5dd85b3fafdb8f7 (commit)
       via  c8b3034dd707a210cc783d0ae6726bfa43ecdf8e (commit)
       via  f202612de6f5d61f6edd5beffa4b3d94f96aed21 (commit)
       via  76596fecbf5d539850663ad065db290463ab1625 (commit)
       via  d93abe3184abe8a8afb1df358c9ca5c840933d7b (commit)
       via  ee74d8486e453fdc9f6b551e5c3a758077b21e9b (commit)
       via  ac35333957c8c9cf3e1253c707b039ed63ee6fbe (commit)
      from  2106848bcf8adcc0a62d46e20af7e37a260f4f91 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit 6067af1282154b55080a6a79171675a930681dfb
Author: Samuel Thibault <[email protected]>
Date:   Thu Sep 10 02:29:22 2026 +0200

    libbpf: Avoid leaking memory content

commit 3ac15b82dad3a8deb35d9974f5dd85b3fafdb8f7
Author: Denis Ovsienko <[email protected]>
Date:   Thu Sep 10 01:59:54 2026 +0200

    For "lsh" and "rsh" guard "#k" as well.
    
    "lsh x" and "rsh x" in BPF space produce an undefined behaviour in C
    space if X > 31 and commit db833b9 prevents exactly that by adding
    guards to the BPF interpreter.  "lsh #k" and "rsh #k" are a case of the
    same problem, except the value is immediate.  Although in programs that
    have been generated by libpcap these instructions never have k > 31, in
    programs that come from an external source via pcap_offline_filter() or
    [deprecated] bpf_filter() 'k' can have any value.  The validator does
    not catch that even if in use, but UBSan eventually does in the
    interpreter:
    
    bpf_filter.c:455:6: runtime error: shift exponent 32 is too large for
      32-bit type 'unsigned int'
    bpf_filter.c:459:6: runtime error: shift exponent 32 is too large for
      32-bit type 'unsigned int'
    
    Add the missing guards to the validator and the interpreter to fix the
    remaining part of the problem.

commit c8b3034dd707a210cc783d0ae6726bfa43ecdf8e
Author: Denis Ovsienko <[email protected]>
Date:   Thu Sep 10 01:56:45 2026 +0200

    CVE-2026-6244: Avoid division by zero via pcap_offline_filter().
    
    The current revision of pcapint_filter_with_aux_data() for "div x" and
    "mod x" correctly rejects the packet if X is zero, but for "div #k" and
    "mod #k" it assumes that k is never zero.  This holds for programs that
    have been generated or validated by libpcap.
    
    However, this does not necessarily hold for programs that come from an
    external source via pcap_offline_filter() or [deprecated] bpf_filter()
    and have not been explicitly validated.  If the interpreter executes
    such a program, it can attempt a division by zero, which will typically
    terminate the process via SIGFPE.
    
    To fix this problem, in pcapint_filter_with_aux_data() treat "div #k"
    and "mod #k" the same way as "div x" and "mod x".

commit f202612de6f5d61f6edd5beffa4b3d94f96aed21
Author: Denis Ovsienko <[email protected]>
Date:   Thu Sep 10 01:47:36 2026 +0200

    CVE-2026-0799: Access M[] safely in the BPF interpreter.
    
    Include Security identified and reported this problem as a potential
    vulnerability in 2018 (case reference "I7").  Their work was sponsored
    by Mozilla under the Secure Open Source program.  The vulnerability has
    been independently confirmed only recently.
    
    The current revision of pcapint_filter_with_aux_data() can, but does not
    check whether a scratch memory register index is valid in the "ld M[k]",
    "ldx M[k]", "st M[k]" and "stx M[k]" BPF instructions, and assumes this
    is always the case.  This holds for programs that have been generated or
    validated by libpcap.
    
    However, this does not necessarily hold for programs that come via
    pcap_offline_filter() or [deprecated] bpf_filter() from an external
    source and have not been explicitly validated.  If the interpreter
    executes such a program with an invalid index, it will read/write the
    process memory at arbitrary locations starting at the current stack
    frame.  Depending on the address, the memory layout and the OS, this can
    result in stack buffer overflow, SIGSEGV, SIGBUS or other effects.  To
    fix this, in the interpreter reject the packet if the index is invalid.

commit 76596fecbf5d539850663ad065db290463ab1625
Author: Guy Harris <[email protected]>
Date:   Thu Sep 10 02:06:51 2026 +0200

    Handle negation in a way that doesn't upset compilers or UBSan.
    
    Most BPF arithmetic is unsigned, but negation can't be unsigned;
    respecify it as subtracting the value from 0U, so that 1) we don't get
    compiler warnings about negating an unsigned value and 2) don't get
    UBSan warnings about the result of negating 0x80000000 being undefined.
    
    Credit to OSS-Fuzz for finding these issues.

commit d93abe3184abe8a8afb1df358c9ca5c840933d7b
Author: Guy Harris <[email protected]>
Date:   Thu Sep 10 02:02:26 2026 +0200

    Fix the semantics of BPF_LSH and BPF_RSH for shifts >= 32 bits.
    
    Some processors treat shifts greater than the width of the shifted
    operand as setting the destination to 0, some others treat it as a shift
    modulo the width.
    
    C says it's undefined, and most if not all implementations make it work
    the way the target processor works.
    
    We treat it as setting the destination to 0, regardless of how the
    processor on which we're running works.
    
    Credit to OSS-Fuzz for finding this issue.

commit ee74d8486e453fdc9f6b551e5c3a758077b21e9b
Author: Guy Harris <[email protected]>
Date:   Thu Sep 10 02:04:45 2026 +0200

    Squelch warnings for negating an unsigned value.

commit ac35333957c8c9cf3e1253c707b039ed63ee6fbe
Author: Guy Harris <[email protected]>
Date:   Thu Sep 10 01:53:12 2026 +0200

    Support mod and XOR operators.
    
    Same opcodes as on Linux.

-----------------------------------------------------------------------

Summary of changes:
 libbpf/bpf_impl.c | 65 +++++++++++++++++++++++++++++++++++++++++++++++++------
 1 file changed, 58 insertions(+), 7 deletions(-)


hooks/post-receive
-- 
Hurd

Reply via email to