Bug 1223005 (CVE-2024-26827) - VUL-0: REJECTED: CVE-2024-26827: kernel: i2c: qcom-geni: Correct I2C TRE sequence
Summary: VUL-0: REJECTED: CVE-2024-26827: kernel: i2c: qcom-geni: Correct I2C TRE sequ...
Status: RESOLVED INVALID
Alias: CVE-2024-26827
Product: SUSE Security Incidents
Classification: Novell Products
Component: Incidents (show other bugs)
Version: unspecified
Hardware: Other Other
: P3 - Medium : Normal
Target Milestone: ---
Assignee: Jean Delvare
QA Contact: Security Team bot
URL: https://smash.suse.de/issue/402314/
Whiteboard: CVSSv3.1:SUSE:CVE-2024-26827:5.5:(AV:...
Keywords:
Depends on:
Blocks:
 
Reported: 2024-04-18 06:46 UTC by SMASH SMASH
Modified: 2024-04-19 07:22 UTC (History)
3 users (show)

See Also:
Found By: Security Response Team
Services Priority:
Business Priority:
Blocker: ---
Marketing QA Status: ---
IT Deployment: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description SMASH SMASH 2024-04-18 06:46:44 UTC
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

References:
http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2024-26827
https://www.cve.org/CVERecord?id=CVE-2024-26827
https://git.kernel.org/stable/c/0589dff4fbf4a7b88a909a34ecfa7b5d3daf51f5
https://git.kernel.org/stable/c/083870b029c06da6a9a49340dd78637eec35a1d4
https://git.kernel.org/stable/c/83ef106fa732aea8558253641cd98e8a895604d7
https://git.kernel.org/stable/c/9318483e99f242ec4059e2fa20887e1d28efd5ae
https://git.kernel.org/pub/scm/linux/security/vulns.git/plain/cve/published/2024/CVE-2024-26827.mbox
https://bugzilla.redhat.com/show_bug.cgi?id=2275602
Comment 4 Jean Delvare 2024-04-18 20:30:01 UTC
So what's next, can I simply close this bug without further action?
Comment 5 Carlos López 2024-04-19 07:22:04 UTC
Closing as invalid.