GSD-2024-26827
Vulnerability from gsd - Updated: 2024-02-20 06:02Details
In the Linux kernel, the following vulnerability has been resolved:
i2c: qcom-geni: Correct I2C TRE sequence
For i2c read operation in GSI mode, we are getting timeout
due to malformed TRE basically incorrect TRE sequence
in gpi(drivers/dma/qcom/gpi.c) driver.
I2C driver has geni_i2c_gpi(I2C_WRITE) function which generates GO TRE and
geni_i2c_gpi(I2C_READ)generates DMA TRE. Hence to generate GO TRE before
DMA TRE, we should move geni_i2c_gpi(I2C_WRITE) before
geni_i2c_gpi(I2C_READ) inside the I2C GSI mode transfer function
i.e. geni_i2c_gpi_xfer().
TRE stands for Transfer Ring Element - which is basically an element with
size of 4 words. It contains all information like slave address,
clk divider, dma address value data size etc).
Mainly we have 3 TREs(Config, GO and DMA tre).
- CONFIG TRE : consists of internal register configuration which is
required before start of the transfer.
- DMA TRE : contains DDR/Memory address, called as DMA descriptor.
- GO TRE : contains Transfer directions, slave ID, Delay flags, Length
of the transfer.
I2c driver calls GPI driver API to config each TRE depending on the
protocol.
For read operation tre sequence will be as below which is not aligned
to hardware programming guide.
- CONFIG tre
- DMA tre
- GO tre
As per Qualcomm's internal Hardware Programming Guide, we should configure
TREs in below sequence for any RX only transfer.
- CONFIG tre
- GO tre
- DMA tre
Aliases
{
"gsd": {
"metadata": {
"exploitCode": "unknown",
"remediation": "unknown",
"reportConfidence": "confirmed",
"type": "vulnerability"
},
"osvSchema": {
"aliases": [
"CVE-2024-26827"
],
"details": "In the Linux kernel, the following vulnerability has been resolved:\n\ni2c: qcom-geni: Correct I2C TRE sequence\n\nFor i2c read operation in GSI mode, we are getting timeout\ndue to malformed TRE basically incorrect TRE sequence\nin gpi(drivers/dma/qcom/gpi.c) driver.\n\nI2C driver has geni_i2c_gpi(I2C_WRITE) function which generates GO TRE and\ngeni_i2c_gpi(I2C_READ)generates DMA TRE. Hence to generate GO TRE before\nDMA TRE, we should move geni_i2c_gpi(I2C_WRITE) before\ngeni_i2c_gpi(I2C_READ) inside the I2C GSI mode transfer function\ni.e. geni_i2c_gpi_xfer().\n\nTRE stands for Transfer Ring Element - which is basically an element with\nsize of 4 words. It contains all information like slave address,\nclk divider, dma address value data size etc).\n\nMainly we have 3 TREs(Config, GO and DMA tre).\n- CONFIG TRE : consists of internal register configuration which is\n required before start of the transfer.\n- DMA TRE : contains DDR/Memory address, called as DMA descriptor.\n- GO TRE : contains Transfer directions, slave ID, Delay flags, Length\n of the transfer.\n\nI2c driver calls GPI driver API to config each TRE depending on the\nprotocol.\n\nFor read operation tre sequence will be as below which is not aligned\nto hardware programming guide.\n\n- CONFIG tre\n- DMA tre\n- GO tre\n\nAs per Qualcomm\u0027s internal Hardware Programming Guide, we should configure\nTREs in below sequence for any RX only transfer.\n\n- CONFIG tre\n- GO tre\n- DMA tre",
"id": "GSD-2024-26827",
"modified": "2024-02-20T06:02:29.186858Z",
"schema_version": "1.4.0"
}
},
"namespaces": {
"cve.org": {
"CVE_data_meta": {
"ASSIGNER": "cve@kernel.org",
"ID": "CVE-2024-26827",
"STATE": "REJECT"
},
"data_format": "MITRE",
"data_type": "CVE",
"data_version": "4.0",
"description": {
"description_data": [
{
"lang": "eng",
"value": "** REJECT ** This CVE ID has been rejected or withdrawn by its CVE Numbering Authority."
}
]
}
},
"nvd.nist.gov": {
"cve": {
"descriptions": [
{
"lang": "en",
"value": "Rejected reason: This CVE ID has been rejected or withdrawn by its CVE Numbering Authority."
}
],
"id": "CVE-2024-26827",
"lastModified": "2024-04-18T15:15:28.957",
"metrics": {},
"published": "2024-04-17T10:15:09.240",
"references": [],
"sourceIdentifier": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"vulnStatus": "Rejected"
}
}
}
}
Loading…
Loading…
Sightings
| Author | Source | Type | Date |
|---|
Nomenclature
- Seen: The vulnerability was mentioned, discussed, or observed by the user.
- Confirmed: The vulnerability has been validated from an analyst's perspective.
- Published Proof of Concept: A public proof of concept is available for this vulnerability.
- Exploited: The vulnerability was observed as exploited by the user who reported the sighting.
- Patched: The vulnerability was observed as successfully patched by the user who reported the sighting.
- Not exploited: The vulnerability was not observed as exploited by the user who reported the sighting.
- Not confirmed: The user expressed doubt about the validity of the vulnerability.
- Not patched: The vulnerability was not observed as successfully patched by the user who reported the sighting.
Loading…
Loading…