{"api_version":"1","generated_at":"2026-07-23T15:15:34+00:00","cve":"CVE-2026-52948","urls":{"html":"https://cve.report/CVE-2026-52948","api":"https://cve.report/api/cve/CVE-2026-52948.json","docs":"https://cve.report/api","cve_org":"https://www.cve.org/CVERecord?id=CVE-2026-52948","nvd":"https://nvd.nist.gov/vuln/detail/CVE-2026-52948"},"summary":{"title":"i2c: dev: prevent integer overflow in I2C_TIMEOUT ioctl","description":"In the Linux kernel, the following vulnerability has been resolved:\n\ni2c: dev: prevent integer overflow in I2C_TIMEOUT ioctl\n\nWhile fuzzing with Syzkaller, a persistent `schedule_timeout: wrong\ntimeout value` warning was observed, accompanied by SMBus controller\nstate machine corruption.\n\nThe I2C_TIMEOUT ioctl accepts a user-provided timeout in multiples of\n10 ms. The user argument is checked against INT_MAX, but it is\nsubsequently multiplied by 10 before being passed to msecs_to_jiffies().\n\nA malicious user can pass a large value (e.g., 429496729) that passes\nthe `arg > INT_MAX` check but overflows when multiplied by 10. This\nresults in a truncated 32-bit unsigned value that bypasses the\ninternal `(int)m < 0` check in `msecs_to_jiffies()`.\n\nThe truncated value is then assigned to `client->adapter->timeout`\n(a signed 32-bit int), which is reinterpreted as a negative number.\nWhen passed to wait_for_completion_timeout(), this negative value\nundergoes sign extension to a 64-bit unsigned long, triggering the\n`schedule_timeout` warning and causing premature returns. This leaves\nthe SMBus state machine in an unrecoverable state, constituting a\nlocal Denial of Service (DoS).\n\nFix this by bounding the user argument to `INT_MAX / 10`.\n\n[wsa: move the comment as well]","state":"PUBLISHED","assigner":"Linux","published_at":"2026-06-24 17:17:04","updated_at":"2026-07-14 16:58:13"},"problem_types":["CWE-190"],"metrics":[{"version":"3.1","source":"nvd@nist.gov","type":"Primary","score":"5.5","severity":"MEDIUM","vector":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H","data":{"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"}}],"references":[{"url":"https://git.kernel.org/stable/c/617eb7c0961a8dfcfc811844a6396e406b2923ea","name":"https://git.kernel.org/stable/c/617eb7c0961a8dfcfc811844a6396e406b2923ea","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":["Patch"],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://git.kernel.org/stable/c/e9ffd5f5050fbb199d270a85614cd27ebed6fbac","name":"https://git.kernel.org/stable/c/e9ffd5f5050fbb199d270a85614cd27ebed6fbac","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":["Patch"],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://git.kernel.org/stable/c/943e318eedbeaeea08ece3f5dd44c982f4ed2ef5","name":"https://git.kernel.org/stable/c/943e318eedbeaeea08ece3f5dd44c982f4ed2ef5","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":["Patch"],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://git.kernel.org/stable/c/4576621dc6577f21a032acfd16c3ad61907a5ea7","name":"https://git.kernel.org/stable/c/4576621dc6577f21a032acfd16c3ad61907a5ea7","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":["Patch"],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://git.kernel.org/stable/c/aa6ef734016912653a909477fb30aeb66c98b3a2","name":"https://git.kernel.org/stable/c/aa6ef734016912653a909477fb30aeb66c98b3a2","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":["Patch"],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://git.kernel.org/stable/c/ff02add34ffd03449b8115904ebe2ec4fed022d4","name":"https://git.kernel.org/stable/c/ff02add34ffd03449b8115904ebe2ec4fed022d4","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":["Patch"],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://git.kernel.org/stable/c/0b88ecfbc9dc33b4db8836c37b50cf174e6c0691","name":"https://git.kernel.org/stable/c/0b88ecfbc9dc33b4db8836c37b50cf174e6c0691","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":["Patch"],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://git.kernel.org/stable/c/ffbcf31f032eb454ebfd29309f51366fe57f4ac4","name":"https://git.kernel.org/stable/c/ffbcf31f032eb454ebfd29309f51366fe57f4ac4","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":["Patch"],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://www.cve.org/CVERecord?id=CVE-2026-52948","name":"CVE Program record","refsource":"CVE.ORG","tags":["canonical"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-52948","name":"NVD vulnerability detail","refsource":"NVD","tags":["canonical","analysis"]}],"affected":[{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected cd97f39b7cdf1c8a9c9f52865eec795b7f0c811d e9ffd5f5050fbb199d270a85614cd27ebed6fbac git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected cd97f39b7cdf1c8a9c9f52865eec795b7f0c811d 0b88ecfbc9dc33b4db8836c37b50cf174e6c0691 git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected cd97f39b7cdf1c8a9c9f52865eec795b7f0c811d 943e318eedbeaeea08ece3f5dd44c982f4ed2ef5 git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected cd97f39b7cdf1c8a9c9f52865eec795b7f0c811d aa6ef734016912653a909477fb30aeb66c98b3a2 git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected cd97f39b7cdf1c8a9c9f52865eec795b7f0c811d ff02add34ffd03449b8115904ebe2ec4fed022d4 git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected cd97f39b7cdf1c8a9c9f52865eec795b7f0c811d ffbcf31f032eb454ebfd29309f51366fe57f4ac4 git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected cd97f39b7cdf1c8a9c9f52865eec795b7f0c811d 4576621dc6577f21a032acfd16c3ad61907a5ea7 git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected cd97f39b7cdf1c8a9c9f52865eec795b7f0c811d 617eb7c0961a8dfcfc811844a6396e406b2923ea git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected 2.6.29","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 2.6.29 semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 5.10.259 5.10.* semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 5.15.210 5.15.* semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 6.1.176 6.1.* semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 6.6.143 6.6.* semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 6.12.94 6.12.* semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 6.18.36 6.18.* semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 7.0.13 7.0.* semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 7.1 * original_commit_for_fix","platforms":[]}],"timeline":[],"solutions":[],"workarounds":[],"exploits":[],"credits":[],"nvd_cpes":[{"cve_year":"2026","cve_id":"52948","vulnerable":"1","versionEndIncluding":"","cpe1":"cpe","cpe2":"2.3","cpe3":"o","cpe4":"linux","cpe5":"linux_kernel","cpe6":"*","cpe7":"*","cpe8":"*","cpe9":"*","cpe10":"*","cpe11":"*","cpe12":"*","cpe13":"*"}],"vendor_comments":[],"enrichments":{"kev":null,"epss":{"cve_year":"2026","cve_id":"52948","cve":"CVE-2026-52948","epss":"0.001850000","percentile":"0.082260000","score_date":"2026-07-13","updated_at":"2026-07-14 00:13:16"},"legacy_qids":[]},"source_records":{"cve_program":{"containers":{"cna":{"affected":[{"defaultStatus":"unaffected","product":"Linux","programFiles":["drivers/i2c/i2c-dev.c"],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","vendor":"Linux","versions":[{"lessThan":"e9ffd5f5050fbb199d270a85614cd27ebed6fbac","status":"affected","version":"cd97f39b7cdf1c8a9c9f52865eec795b7f0c811d","versionType":"git"},{"lessThan":"0b88ecfbc9dc33b4db8836c37b50cf174e6c0691","status":"affected","version":"cd97f39b7cdf1c8a9c9f52865eec795b7f0c811d","versionType":"git"},{"lessThan":"943e318eedbeaeea08ece3f5dd44c982f4ed2ef5","status":"affected","version":"cd97f39b7cdf1c8a9c9f52865eec795b7f0c811d","versionType":"git"},{"lessThan":"aa6ef734016912653a909477fb30aeb66c98b3a2","status":"affected","version":"cd97f39b7cdf1c8a9c9f52865eec795b7f0c811d","versionType":"git"},{"lessThan":"ff02add34ffd03449b8115904ebe2ec4fed022d4","status":"affected","version":"cd97f39b7cdf1c8a9c9f52865eec795b7f0c811d","versionType":"git"},{"lessThan":"ffbcf31f032eb454ebfd29309f51366fe57f4ac4","status":"affected","version":"cd97f39b7cdf1c8a9c9f52865eec795b7f0c811d","versionType":"git"},{"lessThan":"4576621dc6577f21a032acfd16c3ad61907a5ea7","status":"affected","version":"cd97f39b7cdf1c8a9c9f52865eec795b7f0c811d","versionType":"git"},{"lessThan":"617eb7c0961a8dfcfc811844a6396e406b2923ea","status":"affected","version":"cd97f39b7cdf1c8a9c9f52865eec795b7f0c811d","versionType":"git"}]},{"defaultStatus":"affected","product":"Linux","programFiles":["drivers/i2c/i2c-dev.c"],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","vendor":"Linux","versions":[{"status":"affected","version":"2.6.29"},{"lessThan":"2.6.29","status":"unaffected","version":"0","versionType":"semver"},{"lessThanOrEqual":"5.10.*","status":"unaffected","version":"5.10.259","versionType":"semver"},{"lessThanOrEqual":"5.15.*","status":"unaffected","version":"5.15.210","versionType":"semver"},{"lessThanOrEqual":"6.1.*","status":"unaffected","version":"6.1.176","versionType":"semver"},{"lessThanOrEqual":"6.6.*","status":"unaffected","version":"6.6.143","versionType":"semver"},{"lessThanOrEqual":"6.12.*","status":"unaffected","version":"6.12.94","versionType":"semver"},{"lessThanOrEqual":"6.18.*","status":"unaffected","version":"6.18.36","versionType":"semver"},{"lessThanOrEqual":"7.0.*","status":"unaffected","version":"7.0.13","versionType":"semver"},{"lessThanOrEqual":"*","status":"unaffected","version":"7.1","versionType":"original_commit_for_fix"}]}],"cpeApplicability":[{"nodes":[{"cpeMatch":[{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionEndExcluding":"5.10.259","versionStartIncluding":"2.6.29","vulnerable":true},{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionEndExcluding":"5.15.210","versionStartIncluding":"2.6.29","vulnerable":true},{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionEndExcluding":"6.1.176","versionStartIncluding":"2.6.29","vulnerable":true},{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionEndExcluding":"6.6.143","versionStartIncluding":"2.6.29","vulnerable":true},{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionEndExcluding":"6.12.94","versionStartIncluding":"2.6.29","vulnerable":true},{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionEndExcluding":"6.18.36","versionStartIncluding":"2.6.29","vulnerable":true},{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionEndExcluding":"7.0.13","versionStartIncluding":"2.6.29","vulnerable":true},{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionEndExcluding":"7.1","versionStartIncluding":"2.6.29","vulnerable":true}],"negate":false,"operator":"OR"}]}],"descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\ni2c: dev: prevent integer overflow in I2C_TIMEOUT ioctl\n\nWhile fuzzing with Syzkaller, a persistent `schedule_timeout: wrong\ntimeout value` warning was observed, accompanied by SMBus controller\nstate machine corruption.\n\nThe I2C_TIMEOUT ioctl accepts a user-provided timeout in multiples of\n10 ms. The user argument is checked against INT_MAX, but it is\nsubsequently multiplied by 10 before being passed to msecs_to_jiffies().\n\nA malicious user can pass a large value (e.g., 429496729) that passes\nthe `arg > INT_MAX` check but overflows when multiplied by 10. This\nresults in a truncated 32-bit unsigned value that bypasses the\ninternal `(int)m < 0` check in `msecs_to_jiffies()`.\n\nThe truncated value is then assigned to `client->adapter->timeout`\n(a signed 32-bit int), which is reinterpreted as a negative number.\nWhen passed to wait_for_completion_timeout(), this negative value\nundergoes sign extension to a 64-bit unsigned long, triggering the\n`schedule_timeout` warning and causing premature returns. This leaves\nthe SMBus state machine in an unrecoverable state, constituting a\nlocal Denial of Service (DoS).\n\nFix this by bounding the user argument to `INT_MAX / 10`.\n\n[wsa: move the comment as well]"}],"providerMetadata":{"dateUpdated":"2026-06-29T04:18:39.866Z","orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","shortName":"Linux"},"references":[{"url":"https://git.kernel.org/stable/c/e9ffd5f5050fbb199d270a85614cd27ebed6fbac"},{"url":"https://git.kernel.org/stable/c/0b88ecfbc9dc33b4db8836c37b50cf174e6c0691"},{"url":"https://git.kernel.org/stable/c/943e318eedbeaeea08ece3f5dd44c982f4ed2ef5"},{"url":"https://git.kernel.org/stable/c/aa6ef734016912653a909477fb30aeb66c98b3a2"},{"url":"https://git.kernel.org/stable/c/ff02add34ffd03449b8115904ebe2ec4fed022d4"},{"url":"https://git.kernel.org/stable/c/ffbcf31f032eb454ebfd29309f51366fe57f4ac4"},{"url":"https://git.kernel.org/stable/c/4576621dc6577f21a032acfd16c3ad61907a5ea7"},{"url":"https://git.kernel.org/stable/c/617eb7c0961a8dfcfc811844a6396e406b2923ea"}],"title":"i2c: dev: prevent integer overflow in I2C_TIMEOUT ioctl","x_generator":{"engine":"bippy-1.2.0"}}},"cveMetadata":{"assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","assignerShortName":"Linux","cveId":"CVE-2026-52948","datePublished":"2026-06-24T16:26:05.719Z","dateReserved":"2026-06-09T07:44:35.371Z","dateUpdated":"2026-06-29T04:18:39.866Z","state":"PUBLISHED"},"dataType":"CVE_RECORD","dataVersion":"5.2"},"nvd":{"publishedDate":"2026-06-24 17:17:04","lastModifiedDate":"2026-07-14 16:58:13","problem_types":["CWE-190"],"metrics":{"cvssMetricV31":[{"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}]},"configurations":[{"nodes":[{"operator":"OR","negate":false,"cpeMatch":[{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"2.6.29.1","versionEndExcluding":"5.10.259","matchCriteriaId":"B54FCF5E-67A8-43C5-A117-1562511E2951"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.11","versionEndExcluding":"5.15.210","matchCriteriaId":"5E938CDF-D1C4-43D0-98DC-9E11B6B55801"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.16","versionEndExcluding":"6.1.176","matchCriteriaId":"C4446623-5F2B-4DD8-8666-9FAAC285A757"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.2","versionEndExcluding":"6.6.143","matchCriteriaId":"9062F1CD-CAD6-4EA2-A73F-C06D4A887B8C"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.7","versionEndExcluding":"6.12.94","matchCriteriaId":"85421C0C-ABDE-4357-971C-67F9087DE1B9"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.13","versionEndExcluding":"6.18.36","matchCriteriaId":"389025D2-958D-41BD-BD96-70ED1033A9F3"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.19","versionEndExcluding":"7.0.13","matchCriteriaId":"6A64BF9F-3BCA-42FD-98CB-8F03474D2B1E"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:2.6.29:-:*:*:*:*:*:*","matchCriteriaId":"EE6EED15-2E34-47D9-8619-78B03F2E294F"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:2.6.29:rc7:*:*:*:*:*:*","matchCriteriaId":"5ADBCB22-86AE-487D-8C52-86DFE6B5E9C4"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:2.6.29:rc8:*:*:*:*:*:*","matchCriteriaId":"BF46B929-FA99-4BF7-97FC-0F795CD511A1"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:7.1:rc1:*:*:*:*:*:*","matchCriteriaId":"B1EF7059-E670-45F4-B422-54C40FA86390"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:7.1:rc2:*:*:*:*:*:*","matchCriteriaId":"0D38F0BF-A728-4133-A358-D44A2F7EE6D6"}]}]}]},"legacy_mitre":{"record":{"CveYear":"2026","CveId":"52948","Ordinal":"1","Title":"i2c: dev: prevent integer overflow in I2C_TIMEOUT ioctl","CVE":"CVE-2026-52948","Year":"2026"},"notes":[{"CveYear":"2026","CveId":"52948","Ordinal":"1","NoteData":"In the Linux kernel, the following vulnerability has been resolved:\n\ni2c: dev: prevent integer overflow in I2C_TIMEOUT ioctl\n\nWhile fuzzing with Syzkaller, a persistent `schedule_timeout: wrong\ntimeout value` warning was observed, accompanied by SMBus controller\nstate machine corruption.\n\nThe I2C_TIMEOUT ioctl accepts a user-provided timeout in multiples of\n10 ms. The user argument is checked against INT_MAX, but it is\nsubsequently multiplied by 10 before being passed to msecs_to_jiffies().\n\nA malicious user can pass a large value (e.g., 429496729) that passes\nthe `arg > INT_MAX` check but overflows when multiplied by 10. This\nresults in a truncated 32-bit unsigned value that bypasses the\ninternal `(int)m < 0` check in `msecs_to_jiffies()`.\n\nThe truncated value is then assigned to `client->adapter->timeout`\n(a signed 32-bit int), which is reinterpreted as a negative number.\nWhen passed to wait_for_completion_timeout(), this negative value\nundergoes sign extension to a 64-bit unsigned long, triggering the\n`schedule_timeout` warning and causing premature returns. This leaves\nthe SMBus state machine in an unrecoverable state, constituting a\nlocal Denial of Service (DoS).\n\nFix this by bounding the user argument to `INT_MAX / 10`.\n\n[wsa: move the comment as well]","Type":"Description","Title":"i2c: dev: prevent integer overflow in I2C_TIMEOUT ioctl"}]}}}