cve-2024-35841
Vulnerability from cvelistv5
Published
2024-05-17 14:27
Modified
2024-09-11 17:33
Severity
Summary
net: tls, fix WARNIING in __sk_msg_free
Impacted products
VendorProduct
LinuxLinux
LinuxLinux
Show details on NVD website


{
  "containers": {
    "adp": [
      {
        "providerMetadata": {
          "dateUpdated": "2024-08-02T03:21:48.073Z",
          "orgId": "af854a3a-2127-422b-91ae-364da2661108",
          "shortName": "CVE"
        },
        "references": [
          {
            "tags": [
              "x_transferred"
            ],
            "url": "https://git.kernel.org/stable/c/02e368eb1444a4af649b73cbe2edd51780511d86"
          },
          {
            "tags": [
              "x_transferred"
            ],
            "url": "https://git.kernel.org/stable/c/294e7ea85f34748f04e5f3f9dba6f6b911d31aa8"
          },
          {
            "tags": [
              "x_transferred"
            ],
            "url": "https://git.kernel.org/stable/c/dc9dfc8dc629e42f2234e3327b75324ffc752bc9"
          }
        ],
        "title": "CVE Program Container"
      },
      {
        "metrics": [
          {
            "other": {
              "content": {
                "id": "CVE-2024-35841",
                "options": [
                  {
                    "Exploitation": "none"
                  },
                  {
                    "Automatable": "no"
                  },
                  {
                    "Technical Impact": "partial"
                  }
                ],
                "role": "CISA Coordinator",
                "timestamp": "2024-09-10T15:41:46.618855Z",
                "version": "2.0.3"
              },
              "type": "ssvc"
            }
          }
        ],
        "providerMetadata": {
          "dateUpdated": "2024-09-11T17:33:18.283Z",
          "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
          "shortName": "CISA-ADP"
        },
        "title": "CISA ADP Vulnrichment"
      }
    ],
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "product": "Linux",
          "programFiles": [
            "net/tls/tls_sw.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "02e368eb1444",
              "status": "affected",
              "version": "fe1e81d4f73b",
              "versionType": "git"
            },
            {
              "lessThan": "294e7ea85f34",
              "status": "affected",
              "version": "fe1e81d4f73b",
              "versionType": "git"
            },
            {
              "lessThan": "dc9dfc8dc629",
              "status": "affected",
              "version": "fe1e81d4f73b",
              "versionType": "git"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "net/tls/tls_sw.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "6.5"
            },
            {
              "lessThan": "6.5",
              "status": "unaffected",
              "version": "0",
              "versionType": "custom"
            },
            {
              "lessThanOrEqual": "6.6.*",
              "status": "unaffected",
              "version": "6.6.14",
              "versionType": "custom"
            },
            {
              "lessThanOrEqual": "6.7.*",
              "status": "unaffected",
              "version": "6.7.2",
              "versionType": "custom"
            },
            {
              "lessThanOrEqual": "*",
              "status": "unaffected",
              "version": "6.8",
              "versionType": "original_commit_for_fix"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnet: tls, fix WARNIING in __sk_msg_free\n\nA splice with MSG_SPLICE_PAGES will cause tls code to use the\ntls_sw_sendmsg_splice path in the TLS sendmsg code to move the user\nprovided pages from the msg into the msg_pl. This will loop over the\nmsg until msg_pl is full, checked by sk_msg_full(msg_pl). The user\ncan also set the MORE flag to hint stack to delay sending until receiving\nmore pages and ideally a full buffer.\n\nIf the user adds more pages to the msg than can fit in the msg_pl\nscatterlist (MAX_MSG_FRAGS) we should ignore the MORE flag and send\nthe buffer anyways.\n\nWhat actually happens though is we abort the msg to msg_pl scatterlist\nsetup and then because we forget to set \u0027full record\u0027 indicating we\ncan no longer consume data without a send we fallthrough to the \u0027continue\u0027\npath which will check if msg_data_left(msg) has more bytes to send and\nthen attempts to fit them in the already full msg_pl. Then next\niteration of sender doing send will encounter a full msg_pl and throw\nthe warning in the syzbot report.\n\nTo fix simply check if we have a full_record in splice code path and\nif not send the msg regardless of MORE flag."
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2024-05-29T05:29:55.784Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/02e368eb1444a4af649b73cbe2edd51780511d86"
        },
        {
          "url": "https://git.kernel.org/stable/c/294e7ea85f34748f04e5f3f9dba6f6b911d31aa8"
        },
        {
          "url": "https://git.kernel.org/stable/c/dc9dfc8dc629e42f2234e3327b75324ffc752bc9"
        }
      ],
      "title": "net: tls, fix WARNIING in __sk_msg_free",
      "x_generator": {
        "engine": "bippy-a5840b7849dd"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2024-35841",
    "datePublished": "2024-05-17T14:27:31.822Z",
    "dateReserved": "2024-05-17T13:50:33.104Z",
    "dateUpdated": "2024-09-11T17:33:18.283Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.1",
  "meta": {
    "nvd": "{\"cve\":{\"id\":\"CVE-2024-35841\",\"sourceIdentifier\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"published\":\"2024-05-17T15:15:21.160\",\"lastModified\":\"2024-05-17T18:35:35.070\",\"vulnStatus\":\"Awaiting Analysis\",\"descriptions\":[{\"lang\":\"en\",\"value\":\"In the Linux kernel, the following vulnerability has been resolved:\\n\\nnet: tls, fix WARNIING in __sk_msg_free\\n\\nA splice with MSG_SPLICE_PAGES will cause tls code to use the\\ntls_sw_sendmsg_splice path in the TLS sendmsg code to move the user\\nprovided pages from the msg into the msg_pl. This will loop over the\\nmsg until msg_pl is full, checked by sk_msg_full(msg_pl). The user\\ncan also set the MORE flag to hint stack to delay sending until receiving\\nmore pages and ideally a full buffer.\\n\\nIf the user adds more pages to the msg than can fit in the msg_pl\\nscatterlist (MAX_MSG_FRAGS) we should ignore the MORE flag and send\\nthe buffer anyways.\\n\\nWhat actually happens though is we abort the msg to msg_pl scatterlist\\nsetup and then because we forget to set \u0027full record\u0027 indicating we\\ncan no longer consume data without a send we fallthrough to the \u0027continue\u0027\\npath which will check if msg_data_left(msg) has more bytes to send and\\nthen attempts to fit them in the already full msg_pl. Then next\\niteration of sender doing send will encounter a full msg_pl and throw\\nthe warning in the syzbot report.\\n\\nTo fix simply check if we have a full_record in splice code path and\\nif not send the msg regardless of MORE flag.\"},{\"lang\":\"es\",\"value\":\"En el kernel de Linux, se resolvi\u00f3 la siguiente vulnerabilidad: net: tls, corrija la ADVERTENCIA en __sk_msg_free Un empalme con MSG_SPLICE_PAGES har\u00e1 que el c\u00f3digo tls use la ruta tls_sw_sendmsg_splice en el c\u00f3digo TLS sendmsg para mover las p\u00e1ginas proporcionadas por el usuario del msg al msg_pl . Esto recorrer\u00e1 el mensaje hasta que msg_pl est\u00e9 lleno, verificado por sk_msg_full(msg_pl). El usuario tambi\u00e9n puede configurar el indicador MORE para que la pila de sugerencias retrase el env\u00edo hasta recibir m\u00e1s p\u00e1ginas e idealmente un b\u00fafer completo. Si el usuario agrega m\u00e1s p\u00e1ginas al mensaje de las que caben en la lista de dispersi\u00f3n msg_pl (MAX_MSG_FRAGS), debemos ignorar el indicador M\u00c1S y enviar el b\u00fafer de todos modos. Sin embargo, lo que realmente sucede es que abortamos la configuraci\u00f3n de la lista de dispersi\u00f3n de msg a msg_pl y luego, como nos olvidamos de configurar el \u0027registro completo\u0027, lo que indica que ya no podemos consumir datos sin un env\u00edo, pasamos a la ruta \u0027continuar\u0027 que verificar\u00e1 si msg_data_left(msg) tiene m\u00e1s bytes para enviar y luego intenta incluirlos en el msg_pl que ya est\u00e1 completo. Luego, la pr\u00f3xima iteraci\u00f3n del remitente que realiza el env\u00edo encontrar\u00e1 un msg_pl completo y arrojar\u00e1 la advertencia en el informe syzbot. Para solucionarlo, simplemente verifique si tenemos un registro completo en la ruta del c\u00f3digo de empalme y, si no, env\u00ede el mensaje independientemente del indicador MORE.\"}],\"metrics\":{},\"references\":[{\"url\":\"https://git.kernel.org/stable/c/02e368eb1444a4af649b73cbe2edd51780511d86\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/294e7ea85f34748f04e5f3f9dba6f6b911d31aa8\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/dc9dfc8dc629e42f2234e3327b75324ffc752bc9\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"}]}}"
  }
}


Log in or create an account to share your comment.




Tags
Taxonomy of the tags.


Loading...

Loading...