GCVE Workshop - 22 September 2026 (14:00-18:00), Luxembourg Before The Vulnopticon Conference - Registration

CVE-2023-53777 (GCVE-0-2023-53777)

Vulnerability from cvelistv5 – Published: 2025-12-09 00:00 – Updated: 2026-05-11 19:51
VLAI
Title
erofs: kill hooked chains to avoid loops on deduplicated compressed images
Summary
In the Linux kernel, the following vulnerability has been resolved: erofs: kill hooked chains to avoid loops on deduplicated compressed images After heavily stressing EROFS with several images which include a hand-crafted image of repeated patterns for more than 46 days, I found two chains could be linked with each other almost simultaneously and form a loop so that the entire loop won't be submitted. As a consequence, the corresponding file pages will remain locked forever. It can be _only_ observed on data-deduplicated compressed images. For example, consider two chains with five pclusters in total: Chain 1: 2->3->4->5 -- The tail pcluster is 5; Chain 2: 5->1->2 -- The tail pcluster is 2. Chain 2 could link to Chain 1 with pcluster 5; and Chain 1 could link to Chain 2 at the same time with pcluster 2. Since hooked chains are all linked locklessly now, I have no idea how to simply avoid the race. Instead, let's avoid hooked chains completely until I could work out a proper way to fix this and end users finally tell us that it's needed to add it back. Actually, this optimization can be found with multi-threaded workloads (especially even more often on deduplicated compressed images), yet I'm not sure about the overall system impacts of not having this compared with implementation complexity.
Severity
No CVSS data available.
Impacted products
Vendor Product Version CPE status
Linux Linux Affected: 267f2492c8f71dac44399988b510f9bf6b074a51 , < d3b39ea24835ac03da1a30f93ae7c05d55a40191 (git)
Affected: 267f2492c8f71dac44399988b510f9bf6b074a51 , < b5b0d52f00e4bacb0ebdf47cd7016b0485fffad2 (git)
Affected: 267f2492c8f71dac44399988b510f9bf6b074a51 , < 10c2b98a40d9044a3e97f4697ca6213bad7e19c2 (git)
Affected: 267f2492c8f71dac44399988b510f9bf6b074a51 , < 967c28b23f6c89bb8eef6a046ea88afe0d7c1029 (git)
guessed Create a notification for this product.
Linux Linux Affected: 6.0
Unaffected: 0 , < 6.0 (semver)
Unaffected: 6.1.39 , ≤ 6.1.* (semver)
Unaffected: 6.3.13 , ≤ 6.3.* (semver)
Unaffected: 6.4.4 , ≤ 6.4.* (semver)
Unaffected: 6.5 , ≤ * (original_commit_for_fix)
guessed Create a notification for this product.
Show details on NVD website

{
  "containers": {
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "product": "Linux",
          "programFiles": [
            "fs/erofs/zdata.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "d3b39ea24835ac03da1a30f93ae7c05d55a40191",
              "status": "affected",
              "version": "267f2492c8f71dac44399988b510f9bf6b074a51",
              "versionType": "git"
            },
            {
              "lessThan": "b5b0d52f00e4bacb0ebdf47cd7016b0485fffad2",
              "status": "affected",
              "version": "267f2492c8f71dac44399988b510f9bf6b074a51",
              "versionType": "git"
            },
            {
              "lessThan": "10c2b98a40d9044a3e97f4697ca6213bad7e19c2",
              "status": "affected",
              "version": "267f2492c8f71dac44399988b510f9bf6b074a51",
              "versionType": "git"
            },
            {
              "lessThan": "967c28b23f6c89bb8eef6a046ea88afe0d7c1029",
              "status": "affected",
              "version": "267f2492c8f71dac44399988b510f9bf6b074a51",
              "versionType": "git"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "fs/erofs/zdata.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "6.0"
            },
            {
              "lessThan": "6.0",
              "status": "unaffected",
              "version": "0",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.1.*",
              "status": "unaffected",
              "version": "6.1.39",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.3.*",
              "status": "unaffected",
              "version": "6.3.13",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.4.*",
              "status": "unaffected",
              "version": "6.4.4",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "*",
              "status": "unaffected",
              "version": "6.5",
              "versionType": "original_commit_for_fix"
            }
          ]
        }
      ],
      "cpeApplicability": [
        {
          "nodes": [
            {
              "cpeMatch": [
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.1.39",
                  "versionStartIncluding": "6.0",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.3.13",
                  "versionStartIncluding": "6.0",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.4.4",
                  "versionStartIncluding": "6.0",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.5",
                  "versionStartIncluding": "6.0",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nerofs: kill hooked chains to avoid loops on deduplicated compressed images\n\nAfter heavily stressing EROFS with several images which include a\nhand-crafted image of repeated patterns for more than 46 days, I found\ntwo chains could be linked with each other almost simultaneously and\nform a loop so that the entire loop won\u0027t be submitted.  As a\nconsequence, the corresponding file pages will remain locked forever.\n\nIt can be _only_ observed on data-deduplicated compressed images.\nFor example, consider two chains with five pclusters in total:\n\tChain 1:  2-\u003e3-\u003e4-\u003e5    -- The tail pcluster is 5;\n        Chain 2:  5-\u003e1-\u003e2       -- The tail pcluster is 2.\n\nChain 2 could link to Chain 1 with pcluster 5; and Chain 1 could link\nto Chain 2 at the same time with pcluster 2.\n\nSince hooked chains are all linked locklessly now, I have no idea how\nto simply avoid the race.  Instead, let\u0027s avoid hooked chains completely\nuntil I could work out a proper way to fix this and end users finally\ntell us that it\u0027s needed to add it back.\n\nActually, this optimization can be found with multi-threaded workloads\n(especially even more often on deduplicated compressed images), yet I\u0027m\nnot sure about the overall system impacts of not having this compared\nwith implementation complexity."
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-05-11T19:51:20.826Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/d3b39ea24835ac03da1a30f93ae7c05d55a40191"
        },
        {
          "url": "https://git.kernel.org/stable/c/b5b0d52f00e4bacb0ebdf47cd7016b0485fffad2"
        },
        {
          "url": "https://git.kernel.org/stable/c/10c2b98a40d9044a3e97f4697ca6213bad7e19c2"
        },
        {
          "url": "https://git.kernel.org/stable/c/967c28b23f6c89bb8eef6a046ea88afe0d7c1029"
        }
      ],
      "title": "erofs: kill hooked chains to avoid loops on deduplicated compressed images",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2023-53777",
    "datePublished": "2025-12-09T00:00:32.947Z",
    "dateReserved": "2025-12-08T23:58:35.271Z",
    "dateUpdated": "2026-05-11T19:51:20.826Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2",
  "vulnerability-lookup:meta": {
    "epss": {
      "cve": "CVE-2023-53777",
      "date": "2026-09-14",
      "epss": "0.00199",
      "percentile": "0.09891"
    },
    "nvd": "{\"cve\":{\"id\":\"CVE-2023-53777\",\"sourceIdentifier\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"published\":\"2025-12-09T01:16:48.753\",\"lastModified\":\"2026-06-17T06:46:03.310\",\"vulnStatus\":\"Deferred\",\"cveTags\":[],\"descriptions\":[{\"lang\":\"en\",\"value\":\"In the Linux kernel, the following vulnerability has been resolved:\\n\\nerofs: kill hooked chains to avoid loops on deduplicated compressed images\\n\\nAfter heavily stressing EROFS with several images which include a\\nhand-crafted image of repeated patterns for more than 46 days, I found\\ntwo chains could be linked with each other almost simultaneously and\\nform a loop so that the entire loop won\u0027t be submitted.  As a\\nconsequence, the corresponding file pages will remain locked forever.\\n\\nIt can be _only_ observed on data-deduplicated compressed images.\\nFor example, consider two chains with five pclusters in total:\\n\\tChain 1:  2-\u003e3-\u003e4-\u003e5    -- The tail pcluster is 5;\\n        Chain 2:  5-\u003e1-\u003e2       -- The tail pcluster is 2.\\n\\nChain 2 could link to Chain 1 with pcluster 5; and Chain 1 could link\\nto Chain 2 at the same time with pcluster 2.\\n\\nSince hooked chains are all linked locklessly now, I have no idea how\\nto simply avoid the race.  Instead, let\u0027s avoid hooked chains completely\\nuntil I could work out a proper way to fix this and end users finally\\ntell us that it\u0027s needed to add it back.\\n\\nActually, this optimization can be found with multi-threaded workloads\\n(especially even more often on deduplicated compressed images), yet I\u0027m\\nnot sure about the overall system impacts of not having this compared\\nwith implementation complexity.\"}],\"affected\":[{\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"affectedData\":[{\"vendor\":\"Linux\",\"product\":\"Linux\",\"defaultStatus\":\"unaffected\",\"programFiles\":[\"fs/erofs/zdata.c\"],\"repo\":\"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\",\"versions\":[{\"version\":\"267f2492c8f71dac44399988b510f9bf6b074a51\",\"lessThan\":\"d3b39ea24835ac03da1a30f93ae7c05d55a40191\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"267f2492c8f71dac44399988b510f9bf6b074a51\",\"lessThan\":\"b5b0d52f00e4bacb0ebdf47cd7016b0485fffad2\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"267f2492c8f71dac44399988b510f9bf6b074a51\",\"lessThan\":\"10c2b98a40d9044a3e97f4697ca6213bad7e19c2\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"267f2492c8f71dac44399988b510f9bf6b074a51\",\"lessThan\":\"967c28b23f6c89bb8eef6a046ea88afe0d7c1029\",\"versionType\":\"git\",\"status\":\"affected\"}]},{\"vendor\":\"Linux\",\"product\":\"Linux\",\"defaultStatus\":\"affected\",\"programFiles\":[\"fs/erofs/zdata.c\"],\"repo\":\"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\",\"versions\":[{\"version\":\"6.0\",\"status\":\"affected\"},{\"version\":\"0\",\"lessThan\":\"6.0\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"6.1.39\",\"lessThanOrEqual\":\"6.1.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"6.3.13\",\"lessThanOrEqual\":\"6.3.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"6.4.4\",\"lessThanOrEqual\":\"6.4.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"6.5\",\"lessThanOrEqual\":\"*\",\"versionType\":\"original_commit_for_fix\",\"status\":\"unaffected\"}]}]}],\"metrics\":{},\"references\":[{\"url\":\"https://git.kernel.org/stable/c/10c2b98a40d9044a3e97f4697ca6213bad7e19c2\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/967c28b23f6c89bb8eef6a046ea88afe0d7c1029\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/b5b0d52f00e4bacb0ebdf47cd7016b0485fffad2\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/d3b39ea24835ac03da1a30f93ae7c05d55a40191\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"}]}}",
    "redhat_vex": {
      "aggregate_severity": "Moderate",
      "current_release_date": "2026-06-29T22:37:25+00:00",
      "cve": "CVE-2023-53777",
      "id": "CVE-2023-53777",
      "initial_release_date": "2023-01-01T00:00:00+00:00",
      "product_status:known_affected": "108",
      "product_status:known_not_affected": "166",
      "source": "Red Hat CSAF VEX",
      "status": "final",
      "title": "kernel: erofs: kill hooked chains to avoid loops on deduplicated compressed images",
      "url": "https://security.access.redhat.com/data/csaf/v2/vex/2023/cve-2023-53777.json",
      "version": "3"
    }
  }
}



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…