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]
[
{
"signature_type": "Function",
"deprecated": false,
"signature_version": "v1",
"digest": {
"length": 359.0,
"function_hash": "85809175056699355184611917916817291902"
},
"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"
},
"id": "CVE-2024-35984-23fb3c34"
},
{
"signature_type": "Function",
"deprecated": false,
"signature_version": "v1",
"digest": {
"length": 359.0,
"function_hash": "85809175056699355184611917916817291902"
},
"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"
},
"id": "CVE-2024-35984-2d77976d"
},
{
"signature_type": "Function",
"deprecated": false,
"signature_version": "v1",
"digest": {
"length": 359.0,
"function_hash": "85809175056699355184611917916817291902"
},
"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"
},
"id": "CVE-2024-35984-5286f152"
},
{
"signature_type": "Line",
"deprecated": false,
"signature_version": "v1",
"digest": {
"line_hashes": [
"213711343876311977585252321574560520504",
"138331736635952655690896681122911814930",
"135148412756471404130426798457605390573",
"69497069892207314008487970654822772192",
"327410966118244749781358497261851080184",
"127499018247940544932132760452774568547",
"117250018623297666994701270706941084309",
"63412949504217935519000530568173776352",
"21090096145112599085135430962381640116",
"296676570240798675694776367075956872806",
"2461804296006964821408995200650716115",
"179216888766537253084509520778628133581",
"47604980448613399553149319051952983616",
"200590899363142496217599586197778626315"
],
"threshold": 0.9
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@91811a31b68d3765b3065f4bb6d7d6d84a7cfc9f",
"target": {
"file": "drivers/i2c/i2c-core-base.c"
},
"id": "CVE-2024-35984-6e4d6344"
},
{
"signature_type": "Line",
"deprecated": false,
"signature_version": "v1",
"digest": {
"line_hashes": [
"213711343876311977585252321574560520504",
"138331736635952655690896681122911814930",
"135148412756471404130426798457605390573",
"69497069892207314008487970654822772192",
"327410966118244749781358497261851080184",
"127499018247940544932132760452774568547",
"117250018623297666994701270706941084309",
"63412949504217935519000530568173776352",
"21090096145112599085135430962381640116",
"296676570240798675694776367075956872806",
"2461804296006964821408995200650716115",
"179216888766537253084509520778628133581",
"47604980448613399553149319051952983616",
"200590899363142496217599586197778626315"
],
"threshold": 0.9
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@5a09eae9a7db597fe0c1fc91636205b4a25d2620",
"target": {
"file": "drivers/i2c/i2c-core-base.c"
},
"id": "CVE-2024-35984-75f0f8e0"
},
{
"signature_type": "Function",
"deprecated": false,
"signature_version": "v1",
"digest": {
"length": 1124.0,
"function_hash": "220947754398713351508499087300820535901"
},
"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"
},
"id": "CVE-2024-35984-7a4ef698"
},
{
"signature_type": "Line",
"deprecated": false,
"signature_version": "v1",
"digest": {
"line_hashes": [
"213711343876311977585252321574560520504",
"138331736635952655690896681122911814930",
"135148412756471404130426798457605390573",
"69497069892207314008487970654822772192",
"327410966118244749781358497261851080184",
"127499018247940544932132760452774568547",
"117250018623297666994701270706941084309",
"63412949504217935519000530568173776352",
"21090096145112599085135430962381640116",
"296676570240798675694776367075956872806",
"2461804296006964821408995200650716115",
"179216888766537253084509520778628133581",
"47604980448613399553149319051952983616",
"200590899363142496217599586197778626315"
],
"threshold": 0.9
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@4e75e222d397c6752b229ed72fc4644c8c36ecde",
"target": {
"file": "drivers/i2c/i2c-core-base.c"
},
"id": "CVE-2024-35984-7e5212b5"
},
{
"signature_type": "Function",
"deprecated": false,
"signature_version": "v1",
"digest": {
"length": 939.0,
"function_hash": "288077642272709945013841752753776733403"
},
"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"
},
"id": "CVE-2024-35984-843dcff9"
},
{
"signature_type": "Function",
"deprecated": false,
"signature_version": "v1",
"digest": {
"length": 359.0,
"function_hash": "85809175056699355184611917916817291902"
},
"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"
},
"id": "CVE-2024-35984-87910aac"
},
{
"signature_type": "Function",
"deprecated": false,
"signature_version": "v1",
"digest": {
"length": 1124.0,
"function_hash": "220947754398713351508499087300820535901"
},
"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"
},
"id": "CVE-2024-35984-8a7eb00b"
},
{
"signature_type": "Function",
"deprecated": false,
"signature_version": "v1",
"digest": {
"length": 1124.0,
"function_hash": "220947754398713351508499087300820535901"
},
"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"
},
"id": "CVE-2024-35984-8ac29fc8"
},
{
"signature_type": "Function",
"deprecated": false,
"signature_version": "v1",
"digest": {
"length": 1124.0,
"function_hash": "220947754398713351508499087300820535901"
},
"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"
},
"id": "CVE-2024-35984-9452d28e"
},
{
"signature_type": "Line",
"deprecated": false,
"signature_version": "v1",
"digest": {
"line_hashes": [
"213711343876311977585252321574560520504",
"138331736635952655690896681122911814930",
"135148412756471404130426798457605390573",
"69497069892207314008487970654822772192",
"327410966118244749781358497261851080184",
"127499018247940544932132760452774568547",
"117250018623297666994701270706941084309",
"63412949504217935519000530568173776352",
"21090096145112599085135430962381640116",
"296676570240798675694776367075956872806",
"2461804296006964821408995200650716115",
"179216888766537253084509520778628133581",
"47604980448613399553149319051952983616",
"200590899363142496217599586197778626315"
],
"threshold": 0.9
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@5fd72404587d7db4acb2d241fd8c387afb0a7aec",
"target": {
"file": "drivers/i2c/i2c-core-base.c"
},
"id": "CVE-2024-35984-9b1f22c4"
},
{
"signature_type": "Function",
"deprecated": false,
"signature_version": "v1",
"digest": {
"length": 1124.0,
"function_hash": "220947754398713351508499087300820535901"
},
"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"
},
"id": "CVE-2024-35984-a7beb8c5"
},
{
"signature_type": "Line",
"deprecated": false,
"signature_version": "v1",
"digest": {
"line_hashes": [
"213711343876311977585252321574560520504",
"138331736635952655690896681122911814930",
"135148412756471404130426798457605390573",
"69497069892207314008487970654822772192",
"327410966118244749781358497261851080184",
"127499018247940544932132760452774568547",
"199891610345355740063179107970768541268"
],
"threshold": 0.9
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@40f1d79f07b49c8a64a861706e5163f2db4bd95d",
"target": {
"file": "drivers/i2c/i2c-core-base.c"
},
"id": "CVE-2024-35984-c6c204c7"
},
{
"signature_type": "Function",
"deprecated": false,
"signature_version": "v1",
"digest": {
"length": 1124.0,
"function_hash": "220947754398713351508499087300820535901"
},
"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"
},
"id": "CVE-2024-35984-d44f632e"
},
{
"signature_type": "Function",
"deprecated": false,
"signature_version": "v1",
"digest": {
"length": 359.0,
"function_hash": "85809175056699355184611917916817291902"
},
"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"
},
"id": "CVE-2024-35984-d59ff6d9"
},
{
"signature_type": "Function",
"deprecated": false,
"signature_version": "v1",
"digest": {
"length": 1124.0,
"function_hash": "220947754398713351508499087300820535901"
},
"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"
},
"id": "CVE-2024-35984-d814a20b"
},
{
"signature_type": "Function",
"deprecated": false,
"signature_version": "v1",
"digest": {
"length": 359.0,
"function_hash": "85809175056699355184611917916817291902"
},
"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"
},
"id": "CVE-2024-35984-de4f3085"
},
{
"signature_type": "Line",
"deprecated": false,
"signature_version": "v1",
"digest": {
"line_hashes": [
"213711343876311977585252321574560520504",
"138331736635952655690896681122911814930",
"135148412756471404130426798457605390573",
"69497069892207314008487970654822772192",
"327410966118244749781358497261851080184",
"127499018247940544932132760452774568547",
"117250018623297666994701270706941084309",
"63412949504217935519000530568173776352",
"21090096145112599085135430962381640116",
"296676570240798675694776367075956872806",
"2461804296006964821408995200650716115",
"179216888766537253084509520778628133581",
"47604980448613399553149319051952983616",
"200590899363142496217599586197778626315"
],
"threshold": 0.9
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@357c64ef1ef39b1e7cd91ab6bdd304d043702c83",
"target": {
"file": "drivers/i2c/i2c-core-base.c"
},
"id": "CVE-2024-35984-ebab8d25"
},
{
"signature_type": "Line",
"deprecated": false,
"signature_version": "v1",
"digest": {
"line_hashes": [
"213711343876311977585252321574560520504",
"138331736635952655690896681122911814930",
"135148412756471404130426798457605390573",
"69497069892207314008487970654822772192",
"327410966118244749781358497261851080184",
"127499018247940544932132760452774568547",
"117250018623297666994701270706941084309",
"63412949504217935519000530568173776352",
"21090096145112599085135430962381640116",
"296676570240798675694776367075956872806",
"2461804296006964821408995200650716115",
"179216888766537253084509520778628133581",
"47604980448613399553149319051952983616",
"200590899363142496217599586197778626315"
],
"threshold": 0.9
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@e3425674ff68dc521c57c6eabad0cbd20a027d85",
"target": {
"file": "drivers/i2c/i2c-core-base.c"
},
"id": "CVE-2024-35984-ec8d9f7e"
},
{
"signature_type": "Function",
"deprecated": false,
"signature_version": "v1",
"digest": {
"length": 359.0,
"function_hash": "85809175056699355184611917916817291902"
},
"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"
},
"id": "CVE-2024-35984-f7ba5e2e"
},
{
"signature_type": "Line",
"deprecated": false,
"signature_version": "v1",
"digest": {
"line_hashes": [
"213711343876311977585252321574560520504",
"138331736635952655690896681122911814930",
"135148412756471404130426798457605390573",
"69497069892207314008487970654822772192",
"327410966118244749781358497261851080184",
"127499018247940544932132760452774568547",
"117250018623297666994701270706941084309",
"63412949504217935519000530568173776352",
"21090096145112599085135430962381640116",
"296676570240798675694776367075956872806",
"2461804296006964821408995200650716115",
"179216888766537253084509520778628133581",
"47604980448613399553149319051952983616",
"200590899363142496217599586197778626315"
],
"threshold": 0.9
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@ad3c3ac7a03be3697114f781193dd3e9d97e6e23",
"target": {
"file": "drivers/i2c/i2c-core-base.c"
},
"id": "CVE-2024-35984-fd8ef587"
}
]