CVE-2023-53599 (GCVE-0-2023-53599)

Vulnerability from cvelistv5 – Published: 2025-10-04 15:44 – Updated: 2026-08-05 09:15
VLAI
Title
crypto: af_alg - Fix missing initialisation affecting gcm-aes-s390
Summary
In the Linux kernel, the following vulnerability has been resolved: crypto: af_alg - Fix missing initialisation affecting gcm-aes-s390 Fix af_alg_alloc_areq() to initialise areq->first_rsgl.sgl.sgt.sgl to point to the scatterlist array in areq->first_rsgl.sgl.sgl. Without this, the gcm-aes-s390 driver will oops when it tries to do gcm_walk_start() on req->dst because req->dst is set to the value of areq->first_rsgl.sgl.sgl by _aead_recvmsg() calling aead_request_set_crypt(). The problem comes if an empty ciphertext is passed: the loop in af_alg_get_rsgl() just passes straight out and doesn't set areq->first_rsgl up. This isn't a problem on x86_64 using gcmaes_crypt_by_sg() because, as far as I can tell, that ignores req->dst and only uses req->src[*]. [*] Is this a bug in aesni-intel_glue.c? The s390x oops looks something like: Unable to handle kernel pointer dereference in virtual kernel address space Failing address: 0000000a00000000 TEID: 0000000a00000803 Fault in home space mode while using kernel ASCE. AS:00000000a43a0007 R3:0000000000000024 Oops: 003b ilc:2 [#1] SMP ... Call Trace: [<000003ff7fc3d47e>] gcm_walk_start+0x16/0x28 [aes_s390] [<00000000a2a342f2>] crypto_aead_decrypt+0x9a/0xb8 [<00000000a2a60888>] aead_recvmsg+0x478/0x698 [<00000000a2e519a0>] sock_recvmsg+0x70/0xb0 [<00000000a2e51a56>] sock_read_iter+0x76/0xa0 [<00000000a273e066>] vfs_read+0x26e/0x2a8 [<00000000a273e8c4>] ksys_read+0xbc/0x100 [<00000000a311d808>] __do_syscall+0x1d0/0x1f8 [<00000000a312ff30>] system_call+0x70/0x98 Last Breaking-Event-Address: [<000003ff7fc3e6b4>] gcm_aes_crypt+0x104/0xa68 [aes_s390]
Assigner
Impacted products
Vendor Product Version
Linux Linux Affected: c1abe6f570aff4b6d396dc551e60570d2f50bd79 , < 2c9d205040d7c0eaccc473917f9b0bb0a923e440 (git)
Affected: c1abe6f570aff4b6d396dc551e60570d2f50bd79 , < 6a4b8aa0a916b39a39175584c07222434fa6c6ef (git)
Create a notification for this product.
Linux Linux Affected: 6.5
Unaffected: 0 , < 6.5 (semver)
Unaffected: 6.5.3 , ≤ 6.5.* (semver)
Unaffected: 6.6 , ≤ * (original_commit_for_fix)
Create a notification for this product.
Show details on NVD website

{
  "containers": {
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "product": "Linux",
          "programFiles": [
            "crypto/af_alg.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "2c9d205040d7c0eaccc473917f9b0bb0a923e440",
              "status": "affected",
              "version": "c1abe6f570aff4b6d396dc551e60570d2f50bd79",
              "versionType": "git"
            },
            {
              "lessThan": "6a4b8aa0a916b39a39175584c07222434fa6c6ef",
              "status": "affected",
              "version": "c1abe6f570aff4b6d396dc551e60570d2f50bd79",
              "versionType": "git"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "crypto/af_alg.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": "semver"
            },
            {
              "lessThanOrEqual": "6.5.*",
              "status": "unaffected",
              "version": "6.5.3",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "*",
              "status": "unaffected",
              "version": "6.6",
              "versionType": "original_commit_for_fix"
            }
          ]
        }
      ],
      "cpeApplicability": [
        {
          "nodes": [
            {
              "cpeMatch": [
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.5.3",
                  "versionStartIncluding": "6.5",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.6",
                  "versionStartIncluding": "6.5",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\ncrypto: af_alg - Fix missing initialisation affecting gcm-aes-s390\n\nFix af_alg_alloc_areq() to initialise areq-\u003efirst_rsgl.sgl.sgt.sgl to point\nto the scatterlist array in areq-\u003efirst_rsgl.sgl.sgl.\n\nWithout this, the gcm-aes-s390 driver will oops when it tries to do\ngcm_walk_start() on req-\u003edst because req-\u003edst is set to the value of\nareq-\u003efirst_rsgl.sgl.sgl by _aead_recvmsg() calling\naead_request_set_crypt().\n\nThe problem comes if an empty ciphertext is passed: the loop in\naf_alg_get_rsgl() just passes straight out and doesn\u0027t set areq-\u003efirst_rsgl\nup.\n\nThis isn\u0027t a problem on x86_64 using gcmaes_crypt_by_sg() because, as far\nas I can tell, that ignores req-\u003edst and only uses req-\u003esrc[*].\n\n[*] Is this a bug in aesni-intel_glue.c?\n\nThe s390x oops looks something like:\n\n Unable to handle kernel pointer dereference in virtual kernel address space\n Failing address: 0000000a00000000 TEID: 0000000a00000803\n Fault in home space mode while using kernel ASCE.\n AS:00000000a43a0007 R3:0000000000000024\n Oops: 003b ilc:2 [#1] SMP\n ...\n Call Trace:\n  [\u003c000003ff7fc3d47e\u003e] gcm_walk_start+0x16/0x28 [aes_s390]\n  [\u003c00000000a2a342f2\u003e] crypto_aead_decrypt+0x9a/0xb8\n  [\u003c00000000a2a60888\u003e] aead_recvmsg+0x478/0x698\n  [\u003c00000000a2e519a0\u003e] sock_recvmsg+0x70/0xb0\n  [\u003c00000000a2e51a56\u003e] sock_read_iter+0x76/0xa0\n  [\u003c00000000a273e066\u003e] vfs_read+0x26e/0x2a8\n  [\u003c00000000a273e8c4\u003e] ksys_read+0xbc/0x100\n  [\u003c00000000a311d808\u003e] __do_syscall+0x1d0/0x1f8\n  [\u003c00000000a312ff30\u003e] system_call+0x70/0x98\n Last Breaking-Event-Address:\n  [\u003c000003ff7fc3e6b4\u003e] gcm_aes_crypt+0x104/0xa68 [aes_s390]"
        }
      ],
      "metrics": [
        {
          "cvssV3_1": {
            "baseScore": 7.8,
            "baseSeverity": "HIGH",
            "vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
            "version": "3.1"
          },
          "scenarios": [
            {
              "lang": "en",
              "value": "AV:L - The vulnerability is reached exclusively through local syscalls on an AF_ALG socket (socket/bind/setsockopt/sendmsg/recvmsg); there is no remote or adjacent-network entry point into crypto/af_alg.c.\nAC:L - The trigger is fully deterministic and attacker-controlled \u2014 bind gcm(aes), set a key, send only the AEAD tag with assoclen 0, then recvmsg with a zero-length buffer, which makes af_alg_get_rsgl() skip its loop every time; heap grooming to control the uninitialised pointer is likewise entirely under the attacker\u0027s control.\nPR:L - alg_create() and alg_bind() perform no capability checks, so any unprivileged local user (including one confined to a container or user namespace) can open an AF_ALG AEAD socket and drive the path.\nUI:N - The attacker performs the entire sequence with its own socket and syscalls; no victim action, mount, or file access is required.\nS:U - The uninitialised-pointer use occurs in kernel context and its consequences (crash or memory corruption) stay within the kernel\u0027s own security authority, with no crossing into a hypervisor or IOMMU boundary.\nC:H - req-\u003edst is an uninitialised, heap-groomable scatterlist pointer handed to crypto backends; drivers that walk it (sg_nents(req-\u003edst), scatterwalk_start(), dma_map_sg()) read through attacker-influenced kernel addresses, and a crafted fake scatterlist turns this into an arbitrary kernel-memory read primitive.\nI:H - Because the wild pointer serves as the crypto operation\u0027s destination SGL, backends write DMA addresses back into its entries and transfer output data into pages named by it, giving an attacker-controlled kernel write primitive suitable for privilege escalation.\nA:H - The demonstrated result is an immediate kernel oops in gcm_walk_start() from an unprivileged recvmsg(), reproducible on demand, which panics or destabilises the system."
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-08-05T09:15:02.975Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/2c9d205040d7c0eaccc473917f9b0bb0a923e440"
        },
        {
          "url": "https://git.kernel.org/stable/c/6a4b8aa0a916b39a39175584c07222434fa6c6ef"
        }
      ],
      "title": "crypto: af_alg - Fix missing initialisation affecting gcm-aes-s390",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2023-53599",
    "datePublished": "2025-10-04T15:44:11.096Z",
    "dateReserved": "2025-10-04T15:40:38.479Z",
    "dateUpdated": "2026-08-05T09:15:02.975Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2",
  "vulnerability-lookup:meta": {
    "epss": {
      "cve": "CVE-2023-53599",
      "date": "2026-08-09",
      "epss": "0.00126",
      "percentile": "0.02691"
    },
    "nvd": "{\"cve\":{\"id\":\"CVE-2023-53599\",\"sourceIdentifier\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"published\":\"2025-10-04T16:15:56.497\",\"lastModified\":\"2026-08-04T10:19:13.967\",\"vulnStatus\":\"Modified\",\"cveTags\":[],\"descriptions\":[{\"lang\":\"en\",\"value\":\"In the Linux kernel, the following vulnerability has been resolved:\\n\\ncrypto: af_alg - Fix missing initialisation affecting gcm-aes-s390\\n\\nFix af_alg_alloc_areq() to initialise areq-\u003efirst_rsgl.sgl.sgt.sgl to point\\nto the scatterlist array in areq-\u003efirst_rsgl.sgl.sgl.\\n\\nWithout this, the gcm-aes-s390 driver will oops when it tries to do\\ngcm_walk_start() on req-\u003edst because req-\u003edst is set to the value of\\nareq-\u003efirst_rsgl.sgl.sgl by _aead_recvmsg() calling\\naead_request_set_crypt().\\n\\nThe problem comes if an empty ciphertext is passed: the loop in\\naf_alg_get_rsgl() just passes straight out and doesn\u0027t set areq-\u003efirst_rsgl\\nup.\\n\\nThis isn\u0027t a problem on x86_64 using gcmaes_crypt_by_sg() because, as far\\nas I can tell, that ignores req-\u003edst and only uses req-\u003esrc[*].\\n\\n[*] Is this a bug in aesni-intel_glue.c?\\n\\nThe s390x oops looks something like:\\n\\n Unable to handle kernel pointer dereference in virtual kernel address space\\n Failing address: 0000000a00000000 TEID: 0000000a00000803\\n Fault in home space mode while using kernel ASCE.\\n AS:00000000a43a0007 R3:0000000000000024\\n Oops: 003b ilc:2 [#1] SMP\\n ...\\n Call Trace:\\n  [\u003c000003ff7fc3d47e\u003e] gcm_walk_start+0x16/0x28 [aes_s390]\\n  [\u003c00000000a2a342f2\u003e] crypto_aead_decrypt+0x9a/0xb8\\n  [\u003c00000000a2a60888\u003e] aead_recvmsg+0x478/0x698\\n  [\u003c00000000a2e519a0\u003e] sock_recvmsg+0x70/0xb0\\n  [\u003c00000000a2e51a56\u003e] sock_read_iter+0x76/0xa0\\n  [\u003c00000000a273e066\u003e] vfs_read+0x26e/0x2a8\\n  [\u003c00000000a273e8c4\u003e] ksys_read+0xbc/0x100\\n  [\u003c00000000a311d808\u003e] __do_syscall+0x1d0/0x1f8\\n  [\u003c00000000a312ff30\u003e] system_call+0x70/0x98\\n Last Breaking-Event-Address:\\n  [\u003c000003ff7fc3e6b4\u003e] gcm_aes_crypt+0x104/0xa68 [aes_s390]\"}],\"affected\":[{\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"affectedData\":[{\"vendor\":\"Linux\",\"product\":\"Linux\",\"defaultStatus\":\"unaffected\",\"programFiles\":[\"crypto/af_alg.c\"],\"repo\":\"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\",\"versions\":[{\"version\":\"c1abe6f570aff4b6d396dc551e60570d2f50bd79\",\"lessThan\":\"2c9d205040d7c0eaccc473917f9b0bb0a923e440\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"c1abe6f570aff4b6d396dc551e60570d2f50bd79\",\"lessThan\":\"6a4b8aa0a916b39a39175584c07222434fa6c6ef\",\"versionType\":\"git\",\"status\":\"affected\"}]},{\"vendor\":\"Linux\",\"product\":\"Linux\",\"defaultStatus\":\"affected\",\"programFiles\":[\"crypto/af_alg.c\"],\"repo\":\"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\",\"versions\":[{\"version\":\"6.5\",\"status\":\"affected\"},{\"version\":\"0\",\"lessThan\":\"6.5\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"6.5.3\",\"lessThanOrEqual\":\"6.5.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"6.6\",\"lessThanOrEqual\":\"*\",\"versionType\":\"original_commit_for_fix\",\"status\":\"unaffected\"}]}]}],\"metrics\":{\"cvssMetricV31\":[{\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"type\":\"Secondary\",\"cvssData\":{\"version\":\"3.1\",\"vectorString\":\"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H\",\"baseScore\":7.8,\"baseSeverity\":\"HIGH\",\"attackVector\":\"LOCAL\",\"attackComplexity\":\"LOW\",\"privilegesRequired\":\"LOW\",\"userInteraction\":\"NONE\",\"scope\":\"UNCHANGED\",\"confidentialityImpact\":\"HIGH\",\"integrityImpact\":\"HIGH\",\"availabilityImpact\":\"HIGH\"},\"exploitabilityScore\":1.8,\"impactScore\":5.9},{\"source\":\"nvd@nist.gov\",\"type\":\"Primary\",\"cvssData\":{\"version\":\"3.1\",\"vectorString\":\"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H\",\"baseScore\":5.5,\"baseSeverity\":\"MEDIUM\",\"attackVector\":\"LOCAL\",\"attackComplexity\":\"LOW\",\"privilegesRequired\":\"LOW\",\"userInteraction\":\"NONE\",\"scope\":\"UNCHANGED\",\"confidentialityImpact\":\"NONE\",\"integrityImpact\":\"NONE\",\"availabilityImpact\":\"HIGH\"},\"exploitabilityScore\":1.8,\"impactScore\":3.6}]},\"weaknesses\":[{\"source\":\"nvd@nist.gov\",\"type\":\"Primary\",\"description\":[{\"lang\":\"en\",\"value\":\"CWE-476\"}]}],\"configurations\":[{\"nodes\":[{\"operator\":\"OR\",\"negate\":false,\"cpeMatch\":[{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\",\"versionStartIncluding\":\"6.5\",\"versionEndExcluding\":\"6.5.3\",\"matchCriteriaId\":\"880C803A-BEAE-4DA0-8A59-AC023F7B4EE3\"}]}]}],\"references\":[{\"url\":\"https://git.kernel.org/stable/c/2c9d205040d7c0eaccc473917f9b0bb0a923e440\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/6a4b8aa0a916b39a39175584c07222434fa6c6ef\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]}]}}",
    "redhat_vex": {
      "aggregate_severity": "None",
      "current_release_date": "2026-06-30T10:21:25+00:00",
      "cve": "CVE-2023-53599",
      "id": "CVE-2023-53599",
      "initial_release_date": "2023-01-01T00:00:00+00:00",
      "product_status:known_not_affected": "274",
      "source": "Red Hat CSAF VEX",
      "status": "final",
      "title": "kernel: crypto: af_alg - Fix missing initialisation affecting gcm-aes-s390",
      "url": "https://security.access.redhat.com/data/csaf/v2/vex/2023/cve-2023-53599.json",
      "version": "3"
    },
    "suse_vex": {
      "aggregate_severity": "moderate",
      "current_release_date": "2026-07-25T02:15:34Z",
      "cve": "CVE-2023-53599",
      "id": "CVE-2023-53599",
      "initial_release_date": "2025-10-05T02:55:39Z",
      "product_status:known_affected": "394",
      "product_status:known_not_affected": "271",
      "product_status:recommended": "346",
      "source": "SUSE CSAF VEX",
      "status": "interim",
      "title": "SUSE CVE CVE-2023-53599",
      "url": "https://ftp.suse.com/pub/projects/security/csaf-vex/cve-2023-53599.json",
      "version": "42"
    }
  }
}



Log in or create an account to share your comment.




Tags
Taxonomy of the tags.


Loading…

Loading…

Loading…

Forecast uses a logistic model when the trend is rising, or an exponential decay model when the trend is falling. Fitted via linearized least squares.

Sightings

Author Source Type Date Other

Nomenclature

  • Seen: The vulnerability was mentioned, discussed, or observed by the user.
  • Confirmed: The vulnerability has been validated from an analyst's perspective.
  • Published Proof of Concept: A public proof of concept is available for this vulnerability.
  • Exploited: The vulnerability was observed as exploited by the user who reported the sighting.
  • Patched: The vulnerability was observed as successfully patched by the user who reported the sighting.
  • Not exploited: The vulnerability was not observed as exploited by the user who reported the sighting.
  • Not confirmed: The user expressed doubt about the validity of the vulnerability.
  • Not patched: The vulnerability was not observed as successfully patched by the user who reported the sighting.

Loading…

Detection rules are retrieved from Rulezet.

Loading…

Loading…

Loading…