We recently noticed a critical error with our measurement method.The problem originates from server-side randomness (that sometimes omits headers on a follow-up request) as well as a race condition in CDP/browser extensions.This leads to an unknown (yet likely quite high) number of false positives we report in the paper.See our blog post for details.Overall, since retroactively fixing the numbers is infeasible, the number of extensions reported in the paper must not be assumed to be correct.The following is the final version as was presented at the workshop.We leave it up nevertheless to allow others to better understand the technical aspects of our work, and to avoid they make similar mistakes.Abstract-Browser extensions are add-ons that aim to enhance the functionality of native Web applications on the client side.They intend to provide a rich end-user experience by leveraging feature-rich privileged JavaScript APIs, otherwise inaccessible for native applications.However, numerous large-scale investigations have also reported that extensions often indulge in malicious activities by exploiting access to these privileged APIs such as ad injection, stealing privacy-sensitive data, user fingerprinting, spying user activities on the Web, and malware distribution.In this work, we instead focus on tampering with security headers.To that end, we analyze over 186K Chrome extensions, publicly available on the Chrome Web Store, to detect extensions that actively intercept requests and responses and tamper with their security headers by either injecting, dropping, or modifying them, thereby undermining the security guarantees that these headers typically provide.We propose an automated framework to detect such extensions by leveraging a combination of static and dynamic analysis techniques.We evaluate our proposed methodology by investigating the extensions' behavior against Tranco Top 100 domains and domains targeted explicitly by the extensions under test and report our findings.We observe that over 2.4K extensions actively tamper with at least one security header, undermining the purpose of the server-delivered, clientenforced security headers.
No takes yet. Share an insight, caveat, or question.
Agarwal et al. (2021) studied this question.