In the Linux kernel, the following vulnerability has been resolved:
exfat: resolve memory leak from exfatcreateupcase_table()
If exfatloadupcasetable reaches end and returns -EINVAL, allocated memory doesn't get freed and while exfatloaddefaultupcase_table allocates more memory, leading to a memory leak.
Here's link to syzkaller crash report illustrating this issue: https://syzkaller.appspot.com/text?tag=CrashReport&x=1406c201980000
{ "vanir_signatures": [ { "target": { "file": "fs/exfat/nls.c" }, "digest": { "threshold": 0.9, "line_hashes": [ "89722590051140121782478850204826708517", "67929797535751086389390525150925824213", "228471315404795986895323845841852237464", "187134190619959684553257749738286139251", "263977938238783006607529835595286136881" ] }, "signature_version": "v1", "id": "CVE-2024-47677-21ac018d", "deprecated": false, "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@f9835aec49670c46ebe2973032caaa1043b3d4da", "signature_type": "Line" }, { "target": { "file": "fs/exfat/nls.c", "function": "exfat_create_upcase_table" }, "digest": { "length": 1073.0, "function_hash": "175794721405692734119429629024286186" }, "signature_version": "v1", "id": "CVE-2024-47677-331443fb", "deprecated": false, "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@f9835aec49670c46ebe2973032caaa1043b3d4da", "signature_type": "Function" }, { "target": { "file": "fs/exfat/nls.c", "function": "exfat_create_upcase_table" }, "digest": { "length": 1073.0, "function_hash": "175794721405692734119429629024286186" }, "signature_version": "v1", "id": "CVE-2024-47677-51372812", "deprecated": false, "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@331ed2c739ce656a67865f6b3ee0a478349d78cb", "signature_type": "Function" }, { "target": { "file": "fs/exfat/nls.c" }, "digest": { "threshold": 0.9, "line_hashes": [ "89722590051140121782478850204826708517", "67929797535751086389390525150925824213", "228471315404795986895323845841852237464", "187134190619959684553257749738286139251", "263977938238783006607529835595286136881" ] }, "signature_version": "v1", "id": "CVE-2024-47677-773e981a", "deprecated": false, "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@c290fe508eee36df1640c3cb35dc8f89e073c8a8", "signature_type": "Line" }, { "target": { "file": "fs/exfat/nls.c" }, "digest": { "threshold": 0.9, "line_hashes": [ "89722590051140121782478850204826708517", "67929797535751086389390525150925824213", "228471315404795986895323845841852237464", "187134190619959684553257749738286139251", "263977938238783006607529835595286136881" ] }, "signature_version": "v1", "id": "CVE-2024-47677-7b0e464f", "deprecated": false, "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@331ed2c739ce656a67865f6b3ee0a478349d78cb", "signature_type": "Line" }, { "target": { "file": "fs/exfat/nls.c", "function": "exfat_create_upcase_table" }, "digest": { "length": 1073.0, "function_hash": "175794721405692734119429629024286186" }, "signature_version": "v1", "id": "CVE-2024-47677-fd68effc", "deprecated": false, "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@c290fe508eee36df1640c3cb35dc8f89e073c8a8", "signature_type": "Function" } ] }