{
   "containers": {
      "cna": {
         "providerMetadata": {
            "orgId": "f4215fc3-5b6b-47ff-a258-f7189bd81038"
         },
         "descriptions": [
            {
               "lang": "en",
               "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nl2tp: pass correct message length to ip6_append_data\n\nl2tp_ip6_sendmsg needs to avoid accounting for the transport header\ntwice when splicing more data into an already partially-occupied skbuff.\n\nTo manage this, we check whether the skbuff contains data using\nskb_queue_empty when deciding how much data to append using\nip6_append_data.\n\nHowever, the code which performed the calculation was incorrect:\n\n     ulen = len + skb_queue_empty(&sk->sk_write_queue) ? transhdrlen : 0;\n\n...due to C operator precedence, this ends up setting ulen to\ntranshdrlen for messages with a non-zero length, which results in\ncorrupted packets on the wire.\n\nAdd parentheses to correct the calculation in line with the original\nintent."
            }
         ],
         "affected": [
            {
               "product": "Linux",
               "vendor": "Linux",
               "defaultStatus": "unaffected",
               "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
               "programFiles": [
                  "net/l2tp/l2tp_ip6.c"
               ],
               "versions": [
                  {
                     "version": "559d697c5d07",
                     "lessThan": "4c3ce64bc9d3",
                     "status": "affected",
                     "versionType": "git"
                  },
                  {
                     "version": "1fc793d68d50",
                     "lessThan": "c1d3a84a67db",
                     "status": "affected",
                     "versionType": "git"
                  },
                  {
                     "version": "96b2e1090397",
                     "lessThan": "dcb4d1426859",
                     "status": "affected",
                     "versionType": "git"
                  },
                  {
                     "version": "cd1189956393",
                     "lessThan": "0da15a703951",
                     "status": "affected",
                     "versionType": "git"
                  },
                  {
                     "version": "f6a7182179c0",
                     "lessThan": "13cd1daeea84",
                     "status": "affected",
                     "versionType": "git"
                  },
                  {
                     "version": "9d4c75800f61",
                     "lessThan": "804bd8650a3a",
                     "status": "affected",
                     "versionType": "git"
                  },
                  {
                     "version": "9d4c75800f61",
                     "lessThan": "83340c66b498",
                     "status": "affected",
                     "versionType": "git"
                  },
                  {
                     "version": "9d4c75800f61",
                     "lessThan": "359e54a93ab4",
                     "status": "affected",
                     "versionType": "git"
                  }
               ]
            },
            {
               "product": "Linux",
               "vendor": "Linux",
               "defaultStatus": "affected",
               "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
               "programFiles": [
                  "net/l2tp/l2tp_ip6.c"
               ],
               "versions": [
                  {
                     "version": "6.6",
                     "status": "affected"
                  },
                  {
                     "version": "0",
                     "lessThan": "6.6",
                     "status": "unaffected",
                     "versionType": "custom"
                  },
                  {
                     "version": "4.19.308",
                     "lessThanOrEqual": "4.19.*",
                     "status": "unaffected",
                     "versionType": "custom"
                  },
                  {
                     "version": "5.4.270",
                     "lessThanOrEqual": "5.4.*",
                     "status": "unaffected",
                     "versionType": "custom"
                  },
                  {
                     "version": "5.10.211",
                     "lessThanOrEqual": "5.10.*",
                     "status": "unaffected",
                     "versionType": "custom"
                  },
                  {
                     "version": "5.15.150",
                     "lessThanOrEqual": "5.15.*",
                     "status": "unaffected",
                     "versionType": "custom"
                  },
                  {
                     "version": "6.1.80",
                     "lessThanOrEqual": "6.1.*",
                     "status": "unaffected",
                     "versionType": "custom"
                  },
                  {
                     "version": "6.6.19",
                     "lessThanOrEqual": "6.6.*",
                     "status": "unaffected",
                     "versionType": "custom"
                  },
                  {
                     "version": "6.7.7",
                     "lessThanOrEqual": "6.7.*",
                     "status": "unaffected",
                     "versionType": "custom"
                  },
                  {
                     "version": "6.8",
                     "lessThanOrEqual": "*",
                     "status": "unaffected",
                     "versionType": "original_commit_for_fix"
                  }
               ]
            }
         ],
         "references": [
            {
               "url": "https://git.kernel.org/stable/c/4c3ce64bc9d36ca9164dd6c77ff144c121011aae"
            },
            {
               "url": "https://git.kernel.org/stable/c/c1d3a84a67db910ce28a871273c992c3d7f9efb5"
            },
            {
               "url": "https://git.kernel.org/stable/c/dcb4d14268595065c85dc5528056713928e17243"
            },
            {
               "url": "https://git.kernel.org/stable/c/0da15a70395182ee8cb75716baf00dddc0bea38d"
            },
            {
               "url": "https://git.kernel.org/stable/c/13cd1daeea848614e585b2c6ecc11ca9c8ab2500"
            },
            {
               "url": "https://git.kernel.org/stable/c/804bd8650a3a2bf3432375f8c97d5049d845ce56"
            },
            {
               "url": "https://git.kernel.org/stable/c/83340c66b498e49353530e41542500fc8a4782d6"
            },
            {
               "url": "https://git.kernel.org/stable/c/359e54a93ab43d32ee1bff3c2f9f10cb9f6b6e79"
            }
         ],
         "title": "l2tp: pass correct message length to ip6_append_data",
         "x_generator": {
            "engine": "bippy-a5840b7849dd"
         }
      }
   },
   "cveMetadata": {
      "assignerOrgId": "f4215fc3-5b6b-47ff-a258-f7189bd81038",
      "cveID": "CVE-2024-26752",
      "requesterUserId": "gregkh@kernel.org",
      "serial": "1",
      "state": "PUBLISHED"
   },
   "dataType": "CVE_RECORD",
   "dataVersion": "5.0"
}
