CVE-2022-49612

Source
https://nvd.nist.gov/vuln/detail/CVE-2022-49612
Import Source
https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2022-49612.json
JSON Data
https://api.osv.dev/v1/vulns/CVE-2022-49612
Downstream
Published
2025-02-26T02:23:34Z
Modified
2025-10-21T10:25:32.167490Z
Summary
power: supply: core: Fix boundary conditions in interpolation
Details

In the Linux kernel, the following vulnerability has been resolved:

power: supply: core: Fix boundary conditions in interpolation

The functions powersupplytemp2resistsimple and powersupplyocv2capsimple handle boundary conditions incorrectly. The change was introduced in a4585ba2050f460f749bbaf2b67bd56c41e30283 ("power: supply: core: Use library interpolation"). There are two issues: First, the lines "high = i - 1" and "high = i" in ocv2cap have the wrong order compared to temp2resist. As a consequence, ocv2cap sets high=-1 if ocv>table[0].ocv, which causes an out-of-bounds read. Second, the logic of temp2resist is also not correct. Consider the case table[] = {{20, 100}, {10, 80}, {0, 60}}. For temp=5, we expect a resistance of 70% by interpolation. However, temp2resist sets high=low=2 and returns 60.

References

Affected packages

Git / 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
a4585ba2050f460f749bbaf2b67bd56c41e30283
Fixed
a762cee5d933fe4e2e1b773d60fc74fb8248d8c4
Type
GIT
Repo
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Events
Introduced
a4585ba2050f460f749bbaf2b67bd56c41e30283
Fixed
093d27bb6f2d1963f927ef59c9a2d37059175426

Affected versions

v5.*

v5.16
v5.16-rc2
v5.16-rc3
v5.16-rc4
v5.16-rc5
v5.16-rc6
v5.16-rc7
v5.16-rc8
v5.17
v5.17-rc1
v5.17-rc2
v5.17-rc3
v5.17-rc4
v5.17-rc5
v5.17-rc6
v5.17-rc7
v5.17-rc8
v5.18
v5.18-rc1
v5.18-rc2
v5.18-rc3
v5.18-rc4
v5.18-rc5
v5.18-rc6
v5.18-rc7
v5.18.1
v5.18.10
v5.18.11
v5.18.12
v5.18.2
v5.18.3
v5.18.4
v5.18.5
v5.18.6
v5.18.7
v5.18.8
v5.18.9
v5.19-rc1

Database specific

vanir_signatures

[
    {
        "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@093d27bb6f2d1963f927ef59c9a2d37059175426",
        "id": "CVE-2022-49612-719578f9",
        "deprecated": false,
        "target": {
            "function": "power_supply_temp2resist_simple",
            "file": "drivers/power/supply/power_supply_core.c"
        },
        "signature_version": "v1",
        "signature_type": "Function",
        "digest": {
            "length": 403.0,
            "function_hash": "145619801073938342022833146317155243198"
        }
    },
    {
        "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@a762cee5d933fe4e2e1b773d60fc74fb8248d8c4",
        "id": "CVE-2022-49612-77436a79",
        "deprecated": false,
        "target": {
            "function": "power_supply_ocv2cap_simple",
            "file": "drivers/power/supply/power_supply_core.c"
        },
        "signature_version": "v1",
        "signature_type": "Function",
        "digest": {
            "length": 399.0,
            "function_hash": "46727690536452938527807042432470218771"
        }
    },
    {
        "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@a762cee5d933fe4e2e1b773d60fc74fb8248d8c4",
        "id": "CVE-2022-49612-92fda693",
        "deprecated": false,
        "target": {
            "function": "power_supply_temp2resist_simple",
            "file": "drivers/power/supply/power_supply_core.c"
        },
        "signature_version": "v1",
        "signature_type": "Function",
        "digest": {
            "length": 403.0,
            "function_hash": "145619801073938342022833146317155243198"
        }
    },
    {
        "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@093d27bb6f2d1963f927ef59c9a2d37059175426",
        "id": "CVE-2022-49612-bc7a8c76",
        "deprecated": false,
        "target": {
            "function": "power_supply_ocv2cap_simple",
            "file": "drivers/power/supply/power_supply_core.c"
        },
        "signature_version": "v1",
        "signature_type": "Function",
        "digest": {
            "length": 399.0,
            "function_hash": "46727690536452938527807042432470218771"
        }
    },
    {
        "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@093d27bb6f2d1963f927ef59c9a2d37059175426",
        "id": "CVE-2022-49612-bef2531d",
        "deprecated": false,
        "target": {
            "file": "drivers/power/supply/power_supply_core.c"
        },
        "signature_version": "v1",
        "signature_type": "Line",
        "digest": {
            "threshold": 0.9,
            "line_hashes": [
                "180748230627606700565919471689894017376",
                "64585270510941194552583729635275311270",
                "158594801893001032079966348756406519717",
                "85702374121675514678439864308967787271",
                "133619058521900119931267787288440821417",
                "304407073942604323551721356897855717797",
                "230541735486833927870462798187600127705",
                "215570499892047788485163169648762072873",
                "2438528282242371034278237273334719527",
                "333365036386798664123001142707080600115",
                "305028036407197682817695530946295144710",
                "259941691220809416402241591737366937675",
                "27944248172963717593051926870668351263",
                "156547857673516181944860343346373719224",
                "9498306800893137371246220805654553243",
                "156180774963124565419809353302652088320",
                "209492932950376081051319504767531631847",
                "309288371808378260067443656314316190450",
                "128857284626679653722604272008756830946",
                "85283376425404691413525441596605476397",
                "241944963728198197056262256837347676908",
                "277207590459289550598590704105681496394"
            ]
        }
    },
    {
        "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@a762cee5d933fe4e2e1b773d60fc74fb8248d8c4",
        "id": "CVE-2022-49612-c6527b53",
        "deprecated": false,
        "target": {
            "file": "drivers/power/supply/power_supply_core.c"
        },
        "signature_version": "v1",
        "signature_type": "Line",
        "digest": {
            "threshold": 0.9,
            "line_hashes": [
                "180748230627606700565919471689894017376",
                "64585270510941194552583729635275311270",
                "158594801893001032079966348756406519717",
                "85702374121675514678439864308967787271",
                "133619058521900119931267787288440821417",
                "304407073942604323551721356897855717797",
                "230541735486833927870462798187600127705",
                "215570499892047788485163169648762072873",
                "2438528282242371034278237273334719527",
                "333365036386798664123001142707080600115",
                "305028036407197682817695530946295144710",
                "259941691220809416402241591737366937675",
                "27944248172963717593051926870668351263",
                "156547857673516181944860343346373719224",
                "9498306800893137371246220805654553243",
                "156180774963124565419809353302652088320",
                "209492932950376081051319504767531631847",
                "309288371808378260067443656314316190450",
                "128857284626679653722604272008756830946",
                "85283376425404691413525441596605476397",
                "241944963728198197056262256837347676908",
                "277207590459289550598590704105681496394"
            ]
        }
    }
]

Linux / Kernel

Package

Name
Kernel

Affected ranges

Type
ECOSYSTEM
Events
Introduced
5.17.0
Fixed
5.18.13