In the Linux kernel, the following vulnerability has been resolved:
i2c: smbus: fix NULL function pointer dereference
Baruch reported an OOPS when using the designware controller as target only. Target-only modes break the assumption of one transfer function always being available. Fix this by always checking the pointer in _i2ctransfer.
[wsa: dropped the simplification in core-smbus to avoid theoretical regressions]
{ "vanir_signatures": [ { "id": "CVE-2024-35984-23fb3c34", "signature_type": "Function", "digest": { "function_hash": "85809175056699355184611917916817291902", "length": 359.0 }, "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@5fd72404587d7db4acb2d241fd8c387afb0a7aec", "target": { "file": "drivers/i2c/i2c-core-base.c", "function": "i2c_transfer" }, "deprecated": false, "signature_version": "v1" }, { "id": "CVE-2024-35984-2d77976d", "signature_type": "Function", "digest": { "function_hash": "85809175056699355184611917916817291902", "length": 359.0 }, "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@ad3c3ac7a03be3697114f781193dd3e9d97e6e23", "target": { "file": "drivers/i2c/i2c-core-base.c", "function": "i2c_transfer" }, "deprecated": false, "signature_version": "v1" }, { "id": "CVE-2024-35984-5286f152", "signature_type": "Function", "digest": { "function_hash": "85809175056699355184611917916817291902", "length": 359.0 }, "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@91811a31b68d3765b3065f4bb6d7d6d84a7cfc9f", "target": { "file": "drivers/i2c/i2c-core-base.c", "function": "i2c_transfer" }, "deprecated": false, "signature_version": "v1" }, { "id": "CVE-2024-35984-6e4d6344", "signature_type": "Line", "digest": { "threshold": 0.9, "line_hashes": [ "213711343876311977585252321574560520504", "138331736635952655690896681122911814930", "135148412756471404130426798457605390573", "69497069892207314008487970654822772192", "327410966118244749781358497261851080184", "127499018247940544932132760452774568547", "117250018623297666994701270706941084309", "63412949504217935519000530568173776352", "21090096145112599085135430962381640116", "296676570240798675694776367075956872806", "2461804296006964821408995200650716115", "179216888766537253084509520778628133581", "47604980448613399553149319051952983616", "200590899363142496217599586197778626315" ] }, "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@91811a31b68d3765b3065f4bb6d7d6d84a7cfc9f", "target": { "file": "drivers/i2c/i2c-core-base.c" }, "deprecated": false, "signature_version": "v1" }, { "id": "CVE-2024-35984-75f0f8e0", "signature_type": "Line", "digest": { "threshold": 0.9, "line_hashes": [ "213711343876311977585252321574560520504", "138331736635952655690896681122911814930", "135148412756471404130426798457605390573", "69497069892207314008487970654822772192", "327410966118244749781358497261851080184", "127499018247940544932132760452774568547", "117250018623297666994701270706941084309", "63412949504217935519000530568173776352", "21090096145112599085135430962381640116", "296676570240798675694776367075956872806", "2461804296006964821408995200650716115", "179216888766537253084509520778628133581", "47604980448613399553149319051952983616", "200590899363142496217599586197778626315" ] }, "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@5a09eae9a7db597fe0c1fc91636205b4a25d2620", "target": { "file": "drivers/i2c/i2c-core-base.c" }, "deprecated": false, "signature_version": "v1" }, { "id": "CVE-2024-35984-7a4ef698", "signature_type": "Function", "digest": { "function_hash": "220947754398713351508499087300820535901", "length": 1124.0 }, "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@ad3c3ac7a03be3697114f781193dd3e9d97e6e23", "target": { "file": "drivers/i2c/i2c-core-base.c", "function": "__i2c_transfer" }, "deprecated": false, "signature_version": "v1" }, { "id": "CVE-2024-35984-7e5212b5", "signature_type": "Line", "digest": { "threshold": 0.9, "line_hashes": [ "213711343876311977585252321574560520504", "138331736635952655690896681122911814930", "135148412756471404130426798457605390573", "69497069892207314008487970654822772192", "327410966118244749781358497261851080184", "127499018247940544932132760452774568547", "117250018623297666994701270706941084309", "63412949504217935519000530568173776352", "21090096145112599085135430962381640116", "296676570240798675694776367075956872806", "2461804296006964821408995200650716115", "179216888766537253084509520778628133581", "47604980448613399553149319051952983616", "200590899363142496217599586197778626315" ] }, "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@4e75e222d397c6752b229ed72fc4644c8c36ecde", "target": { "file": "drivers/i2c/i2c-core-base.c" }, "deprecated": false, "signature_version": "v1" }, { "id": "CVE-2024-35984-843dcff9", "signature_type": "Function", "digest": { "function_hash": "288077642272709945013841752753776733403", "length": 939.0 }, "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@40f1d79f07b49c8a64a861706e5163f2db4bd95d", "target": { "file": "drivers/i2c/i2c-core-base.c", "function": "__i2c_transfer" }, "deprecated": false, "signature_version": "v1" }, { "id": "CVE-2024-35984-87910aac", "signature_type": "Function", "digest": { "function_hash": "85809175056699355184611917916817291902", "length": 359.0 }, "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@357c64ef1ef39b1e7cd91ab6bdd304d043702c83", "target": { "file": "drivers/i2c/i2c-core-base.c", "function": "i2c_transfer" }, "deprecated": false, "signature_version": "v1" }, { "id": "CVE-2024-35984-8a7eb00b", "signature_type": "Function", "digest": { "function_hash": "220947754398713351508499087300820535901", "length": 1124.0 }, "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@e3425674ff68dc521c57c6eabad0cbd20a027d85", "target": { "file": "drivers/i2c/i2c-core-base.c", "function": "__i2c_transfer" }, "deprecated": false, "signature_version": "v1" }, { "id": "CVE-2024-35984-8ac29fc8", "signature_type": "Function", "digest": { "function_hash": "220947754398713351508499087300820535901", "length": 1124.0 }, "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@5a09eae9a7db597fe0c1fc91636205b4a25d2620", "target": { "file": "drivers/i2c/i2c-core-base.c", "function": "__i2c_transfer" }, "deprecated": false, "signature_version": "v1" }, { "id": "CVE-2024-35984-9452d28e", "signature_type": "Function", "digest": { "function_hash": "220947754398713351508499087300820535901", "length": 1124.0 }, "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@4e75e222d397c6752b229ed72fc4644c8c36ecde", "target": { "file": "drivers/i2c/i2c-core-base.c", "function": "__i2c_transfer" }, "deprecated": false, "signature_version": "v1" }, { "id": "CVE-2024-35984-9b1f22c4", "signature_type": "Line", "digest": { "threshold": 0.9, "line_hashes": [ "213711343876311977585252321574560520504", "138331736635952655690896681122911814930", "135148412756471404130426798457605390573", "69497069892207314008487970654822772192", "327410966118244749781358497261851080184", "127499018247940544932132760452774568547", "117250018623297666994701270706941084309", "63412949504217935519000530568173776352", "21090096145112599085135430962381640116", "296676570240798675694776367075956872806", "2461804296006964821408995200650716115", "179216888766537253084509520778628133581", "47604980448613399553149319051952983616", "200590899363142496217599586197778626315" ] }, "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@5fd72404587d7db4acb2d241fd8c387afb0a7aec", "target": { "file": "drivers/i2c/i2c-core-base.c" }, "deprecated": false, "signature_version": "v1" }, { "id": "CVE-2024-35984-a7beb8c5", "signature_type": "Function", "digest": { "function_hash": "220947754398713351508499087300820535901", "length": 1124.0 }, "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@91811a31b68d3765b3065f4bb6d7d6d84a7cfc9f", "target": { "file": "drivers/i2c/i2c-core-base.c", "function": "__i2c_transfer" }, "deprecated": false, "signature_version": "v1" }, { "id": "CVE-2024-35984-c6c204c7", "signature_type": "Line", "digest": { "threshold": 0.9, "line_hashes": [ "213711343876311977585252321574560520504", "138331736635952655690896681122911814930", "135148412756471404130426798457605390573", "69497069892207314008487970654822772192", "327410966118244749781358497261851080184", "127499018247940544932132760452774568547", "199891610345355740063179107970768541268" ] }, "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@40f1d79f07b49c8a64a861706e5163f2db4bd95d", "target": { "file": "drivers/i2c/i2c-core-base.c" }, "deprecated": false, "signature_version": "v1" }, { "id": "CVE-2024-35984-d44f632e", "signature_type": "Function", "digest": { "function_hash": "220947754398713351508499087300820535901", "length": 1124.0 }, "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@357c64ef1ef39b1e7cd91ab6bdd304d043702c83", "target": { "file": "drivers/i2c/i2c-core-base.c", "function": "__i2c_transfer" }, "deprecated": false, "signature_version": "v1" }, { "id": "CVE-2024-35984-d59ff6d9", "signature_type": "Function", "digest": { "function_hash": "85809175056699355184611917916817291902", "length": 359.0 }, "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@e3425674ff68dc521c57c6eabad0cbd20a027d85", "target": { "file": "drivers/i2c/i2c-core-base.c", "function": "i2c_transfer" }, "deprecated": false, "signature_version": "v1" }, { "id": "CVE-2024-35984-d814a20b", "signature_type": "Function", "digest": { "function_hash": "220947754398713351508499087300820535901", "length": 1124.0 }, "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@5fd72404587d7db4acb2d241fd8c387afb0a7aec", "target": { "file": "drivers/i2c/i2c-core-base.c", "function": "__i2c_transfer" }, "deprecated": false, "signature_version": "v1" }, { "id": "CVE-2024-35984-de4f3085", "signature_type": "Function", "digest": { "function_hash": "85809175056699355184611917916817291902", "length": 359.0 }, "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@5a09eae9a7db597fe0c1fc91636205b4a25d2620", "target": { "file": "drivers/i2c/i2c-core-base.c", "function": "i2c_transfer" }, "deprecated": false, "signature_version": "v1" }, { "id": "CVE-2024-35984-ebab8d25", "signature_type": "Line", "digest": { "threshold": 0.9, "line_hashes": [ "213711343876311977585252321574560520504", "138331736635952655690896681122911814930", "135148412756471404130426798457605390573", "69497069892207314008487970654822772192", "327410966118244749781358497261851080184", "127499018247940544932132760452774568547", "117250018623297666994701270706941084309", "63412949504217935519000530568173776352", "21090096145112599085135430962381640116", "296676570240798675694776367075956872806", "2461804296006964821408995200650716115", "179216888766537253084509520778628133581", "47604980448613399553149319051952983616", "200590899363142496217599586197778626315" ] }, "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@357c64ef1ef39b1e7cd91ab6bdd304d043702c83", "target": { "file": "drivers/i2c/i2c-core-base.c" }, "deprecated": false, "signature_version": "v1" }, { "id": "CVE-2024-35984-ec8d9f7e", "signature_type": "Line", "digest": { "threshold": 0.9, "line_hashes": [ "213711343876311977585252321574560520504", "138331736635952655690896681122911814930", "135148412756471404130426798457605390573", "69497069892207314008487970654822772192", "327410966118244749781358497261851080184", "127499018247940544932132760452774568547", "117250018623297666994701270706941084309", "63412949504217935519000530568173776352", "21090096145112599085135430962381640116", "296676570240798675694776367075956872806", "2461804296006964821408995200650716115", "179216888766537253084509520778628133581", "47604980448613399553149319051952983616", "200590899363142496217599586197778626315" ] }, "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@e3425674ff68dc521c57c6eabad0cbd20a027d85", "target": { "file": "drivers/i2c/i2c-core-base.c" }, "deprecated": false, "signature_version": "v1" }, { "id": "CVE-2024-35984-f7ba5e2e", "signature_type": "Function", "digest": { "function_hash": "85809175056699355184611917916817291902", "length": 359.0 }, "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@4e75e222d397c6752b229ed72fc4644c8c36ecde", "target": { "file": "drivers/i2c/i2c-core-base.c", "function": "i2c_transfer" }, "deprecated": false, "signature_version": "v1" }, { "id": "CVE-2024-35984-fd8ef587", "signature_type": "Line", "digest": { "threshold": 0.9, "line_hashes": [ "213711343876311977585252321574560520504", "138331736635952655690896681122911814930", "135148412756471404130426798457605390573", "69497069892207314008487970654822772192", "327410966118244749781358497261851080184", "127499018247940544932132760452774568547", "117250018623297666994701270706941084309", "63412949504217935519000530568173776352", "21090096145112599085135430962381640116", "296676570240798675694776367075956872806", "2461804296006964821408995200650716115", "179216888766537253084509520778628133581", "47604980448613399553149319051952983616", "200590899363142496217599586197778626315" ] }, "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@ad3c3ac7a03be3697114f781193dd3e9d97e6e23", "target": { "file": "drivers/i2c/i2c-core-base.c" }, "deprecated": false, "signature_version": "v1" } ] }