lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite for Android: free password hash cracker in your pocket
[<prev] [next>] [day] [month] [year] [list]
Date:   Wed, 10 Jun 2020 08:18:23 -0700
From:   Stephen Hemminger <stephen@...workplumber.org>
To:     Steffen Klassert <steffen.klassert@...unet.com>,
        "David S. Miller" <davem@...emloft.net>,
        Herbert Xu <herbert@...dor.apana.org.au>
Cc:     netdev@...r.kernel.org
Subject: Fw: [Bug 208121] New: IPsec AH ICV Padding for IPv4



Begin forwarded message:

Date: Wed, 10 Jun 2020 09:32:26 +0000
From: bugzilla-daemon@...zilla.kernel.org
To: stephen@...workplumber.org
Subject: [Bug 208121] New: IPsec AH ICV Padding for IPv4


https://bugzilla.kernel.org/show_bug.cgi?id=208121

            Bug ID: 208121
           Summary: IPsec AH ICV Padding for IPv4
           Product: Networking
           Version: 2.5
    Kernel Version: 5.4.0.37.40
          Hardware: All
                OS: Linux
              Tree: Mainline
            Status: NEW
          Severity: normal
          Priority: P1
         Component: Other
          Assignee: stephen@...workplumber.org
          Reporter: markus.gasser@...ktrobit.com
        Regression: No

Created attachment 289597
  --> https://bugzilla.kernel.org/attachment.cgi?id=289597&action=edit  
packet capture

According to RFC 4302[1]:

> As mentioned in Section 2.6, the ICV field may include explicit
> padding if required to ensure that the AH header is a multiple of 32
> bits (IPv4) or 64 bits (IPv6).  If padding is required, its length is
> determined by two factors:
> 
>            - the length of the ICV
>            - the IP protocol version (v4 or v6)  
[...]
>    Inclusion of padding in excess of the minimum amount required to
>    satisfy IPv4/IPv6 alignment requirements is prohibited.  

However, in the Linux implementation padding is always added (and expected) so
that the Authentication Header (AH) is a multiple of 64 bits, independent of
the IP version used. This is an issue when the IPsec AH with IPv4 is used with
HMAC authentication e.g. HMAC-sha256-128. In this case the ICV field is 128
bits long, which results in an AH length of 96 + 128 = 224 bits. Even though
this is a multiple of 32 bits, Linux adds an additional 32 bits of padding.
Additionally, Linux drops incoming packets that do not have this padding.

In the attached file the outgoing packets, that are wrongfully padded can be
seen.

[1] https://tools.ietf.org/html/rfc4302#section-3.3.3.2.1

-- 
You are receiving this mail because:
You are the assignee for the bug.

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ