Description

Multiple issues have been identified in the Goodix gt915 touchscreen driver for Android. The issues were found in the write handler of the procfs entry created by the driver, which by default is readable and writeable to users without any specific privileges.

CVE-2013-4740

When processing data written to the procfs file, the Goodix gt915 touchscreen driver is using user space supplied content as length values in subsequent memory manipulation operations without bounds checking. This can lead to multiple memory corruption issues. An application with access to the respective file can use this flaw to, e.g., elevate privileges. Access Vector: local Security Risk: high Vulnerability: CWE-20 (Improper Input Validation)

CVE-2013-6122

When processing arguments passed to the procfs write handler of the Goodix gt915 touchscreen driver, user space data is copied to a global variable and used without a mutual-exclusion mechanism. The global structure used by the procfs write handler can be accessed concurrently by more than one process. This would allow local attackers to bypass the input validation checks (such as introduced by the fix for CVE-2013-4740). An application with access to the respective file can use this flaw to, e.g., alter the internal state of the handler, bypass security checks, or create a denial-of-service condition.

Access Vector : local Security
Risk : medium
Vulnerability : CWE-362 (Concurrent Execution using Shared Resource with Improper Synchronization)

Affected versions

All Android releases from CAF using a Linux kernel from the following heads:

  • jb_3*
  • msm-3.10

Patch

We advise customers to apply the following patches:

https://www.codeaurora.org/cgit/quic/la/kernel/msm-3.10/commit/?id=f53bcf29a6e7a66b3d935b8d562fa00829261f05

Acknowledgement

Reported by our researcher Jonathan Salwan and patched by Qualcomm Innovation Center.

https://www.codeaurora.org/projects/security-advisories/multiple-memory-corruption-issues-and-race-condition-goodix-gt915-touchscreen-driver-procfs-handler