{"id":"CVE-2025-39735","summary":"jfs: fix slab-out-of-bounds read in ea_get()","details":"In the Linux kernel, the following vulnerability has been resolved:\n\njfs: fix slab-out-of-bounds read in ea_get()\n\nDuring the \"size_check\" label in ea_get(), the code checks if the extended\nattribute list (xattr) size matches ea_size. If not, it logs\n\"ea_get: invalid extended attribute\" and calls print_hex_dump().\n\nHere, EALIST_SIZE(ea_buf-\u003exattr) returns 4110417968, which exceeds\nINT_MAX (2,147,483,647). Then ea_size is clamped:\n\n\tint size = clamp_t(int, ea_size, 0, EALIST_SIZE(ea_buf-\u003exattr));\n\nAlthough clamp_t aims to bound ea_size between 0 and 4110417968, the upper\nlimit is treated as an int, causing an overflow above 2^31 - 1. This leads\n\"size\" to wrap around and become negative (-184549328).\n\nThe \"size\" is then passed to print_hex_dump() (called \"len\" in\nprint_hex_dump()), it is passed as type size_t (an unsigned\ntype), this is then stored inside a variable called\n\"int remaining\", which is then assigned to \"int linelen\" which\nis then passed to hex_dump_to_buffer(). In print_hex_dump()\nthe for loop, iterates through 0 to len-1, where len is\n18446744073525002176, calling hex_dump_to_buffer()\non each iteration:\n\n\tfor (i = 0; i \u003c len; i += rowsize) {\n\t\tlinelen = min(remaining, rowsize);\n\t\tremaining -= rowsize;\n\n\t\thex_dump_to_buffer(ptr + i, linelen, rowsize, groupsize,\n\t\t\t\t   linebuf, sizeof(linebuf), ascii);\n\n\t\t...\n\t}\n\nThe expected stopping condition (i \u003c len) is effectively broken\nsince len is corrupted and very large. This eventually leads to\nthe \"ptr+i\" being passed to hex_dump_to_buffer() to get closer\nto the end of the actual bounds of \"ptr\", eventually an out of\nbounds access is done in hex_dump_to_buffer() in the following\nfor loop:\n\n\tfor (j = 0; j \u003c len; j++) {\n\t\t\tif (linebuflen \u003c lx + 2)\n\t\t\t\tgoto overflow2;\n\t\t\tch = ptr[j];\n\t\t...\n\t}\n\nTo fix this we should validate \"EALIST_SIZE(ea_buf-\u003exattr)\"\nbefore it is utilised.","modified":"2026-04-16T04:32:39.609267198Z","published":"2025-04-18T07:01:36.453Z","related":["SUSE-SU-2025:01620-1","SUSE-SU-2025:01640-1","SUSE-SU-2025:01964-1","SUSE-SU-2025:01965-1","SUSE-SU-2025:02000-1","SUSE-SU-2025:02254-1","SUSE-SU-2025:02307-1","SUSE-SU-2025:02333-1","SUSE-SU-2025:02923-1","SUSE-SU-2025:20408-1","SUSE-SU-2025:20413-1","SUSE-SU-2025:20419-1","SUSE-SU-2025:20421-1"],"database_specific":{"osv_generated_from":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2025/39xxx/CVE-2025-39735.json","cna_assigner":"Linux"},"references":[{"type":"WEB","url":"https://git.kernel.org/stable/c/0beddc2a3f9b9cf7d8887973041e36c2d0fa3652"},{"type":"WEB","url":"https://git.kernel.org/stable/c/16d3d36436492aa248b2d8045e75585ebcc2f34d"},{"type":"WEB","url":"https://git.kernel.org/stable/c/3d6fd5b9c6acbc005e53d0211c7381f566babec1"},{"type":"WEB","url":"https://git.kernel.org/stable/c/46e2c031aa59ea65128991cbca474bd5c0c2ecdb"},{"type":"WEB","url":"https://git.kernel.org/stable/c/50afcee7011155933d8d5e8832f52eeee018cfd3"},{"type":"WEB","url":"https://git.kernel.org/stable/c/5263822558a8a7c0d0248d5679c2dcf4d5cda61f"},{"type":"WEB","url":"https://git.kernel.org/stable/c/78c9cbde8880ec02d864c166bcb4fe989ce1d95f"},{"type":"WEB","url":"https://git.kernel.org/stable/c/a8c31808925b11393a6601f534bb63bac5366bab"},{"type":"WEB","url":"https://git.kernel.org/stable/c/fdf480da5837c23b146c4743c18de97202fcab37"},{"type":"WEB","url":"https://lists.debian.org/debian-lts-announce/2025/05/msg00030.html"},{"type":"WEB","url":"https://lists.debian.org/debian-lts-announce/2025/05/msg00045.html"},{"type":"ADVISORY","url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2025/39xxx/CVE-2025-39735.json"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2025-39735"},{"type":"PACKAGE","url":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git"}],"affected":[{"ranges":[{"type":"GIT","repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","events":[{"introduced":"6e39b681d1eb16f408493bf5023788b57f68998c"},{"fixed":"3d6fd5b9c6acbc005e53d0211c7381f566babec1"}]},{"type":"GIT","repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","events":[{"introduced":"bbf3f1fd8a0ac7df1db36a9b9e923041a14369f2"},{"fixed":"50afcee7011155933d8d5e8832f52eeee018cfd3"}]},{"type":"GIT","repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","events":[{"introduced":"27a93c45e16ac25a0e2b5e5668e2d1beca56a478"},{"fixed":"78c9cbde8880ec02d864c166bcb4fe989ce1d95f"}]},{"type":"GIT","repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","events":[{"introduced":"9c356fc32a4480a2c0e537a05f2a8617633ddad0"},{"fixed":"46e2c031aa59ea65128991cbca474bd5c0c2ecdb"}]},{"type":"GIT","repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","events":[{"introduced":"9353cdf28d4c5c0ff19c5df7fbf81ea774de43a4"},{"fixed":"a8c31808925b11393a6601f534bb63bac5366bab"}]},{"type":"GIT","repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","events":[{"introduced":"8c505ebeed8045b488b2e60b516c752b851f8437"},{"fixed":"0beddc2a3f9b9cf7d8887973041e36c2d0fa3652"}]},{"type":"GIT","repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","events":[{"introduced":"d9f9d96136cba8fedd647d2c024342ce090133c2"},{"fixed":"16d3d36436492aa248b2d8045e75585ebcc2f34d"},{"fixed":"5263822558a8a7c0d0248d5679c2dcf4d5cda61f"},{"fixed":"fdf480da5837c23b146c4743c18de97202fcab37"}]},{"type":"GIT","repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","events":[{"introduced":"0"},{"last_affected":"4ea25fa8747fb8b1e5a11d87b852023ecf7ae420"},{"last_affected":"676a787048aafd4d1b38a522b05a9cc77e1b0a33"}]}],"database_specific":{"source":"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2025-39735.json"}}],"schema_version":"1.7.5","severity":[{"type":"CVSS_V3","score":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:H"}]}