Cross-Language Dependency Analysis for VS Code Extension Ecosystem

dc.contributor.authorBrunnegård, Alexander
dc.contributor.authorCarlstedt, Malte
dc.contributor.departmentChalmers tekniska högskola / Institutionen för data och informationstekniksv
dc.contributor.departmentChalmers University of Technology / Department of Computer Science and Engineeringen
dc.contributor.examinerHorkoff, Jennifer
dc.contributor.supervisorAlhanahnah, Mohannad
dc.date.accessioned2025-11-05T09:57:05Z
dc.date.issued2025
dc.date.submitted
dc.description.abstractVisual Studio Code (VS Code) is currently the most popular integrated development environment (IDE), primarily due to its highly modular architecture facilitated by third-party extensions. These extensions can rely on dependencies spanning multiple programming languages, notably JavaScript and native languages such as C and C++. Such cross-language interactions introduce complexity and potential security vulnerabilities due to differences in memory management, type safety, and crash resilience between languages. While previous research has identified the inherent security risks in cross-language bindings within individual packages in the npm ecosystem, the implications of such vulnerabilities within the VS Code extension ecosystem have yet to be explored. This thesis investigates cross-language dependencies in VS Code extensions, specifically focusing on the interactions between JavaScript and native code. A methodology is presented to systematically discover, construct, and analyse the dependency tree from an extension to native code. The study uncovers patterns, characteristics, and potential security risks associated with native dependencies in VS Code extensions. This research provides insights into the lack of security practices within the VS Code ecosystem by addressing the gap between current knowledge about cross-language vulnerabilities and VS Code extensions. The results show that 455 (14.7%) out of the investigated 3,078 extensions either implemented native code directly or depend on a package including cross-language cooperation. While only two extensions had direct production code in a native language, they amassed 171 potential vulnerabilities. Additionally, 211 extensions depended on 228 dependencies containing native code that amassed 8,732 potential vulnerabilities in total, showing the potential risks of using such packages.
dc.identifier.coursecodeDATX05
dc.identifier.urihttp://hdl.handle.net/20.500.12380/310713
dc.language.isoeng
dc.relation.ispartofseriesCSE 25-37
dc.setspec.uppsokTechnology
dc.subjectCross-Language Dependency, VS Code Extensions, Vulnerability Analysis, npm, CodeQL, Static Analysis
dc.titleCross-Language Dependency Analysis for VS Code Extension Ecosystem
dc.type.degreeExamensarbete för masterexamensv
dc.type.degreeMaster's Thesisen
dc.type.uppsokH
local.programmeComputer systems and networks (MPCSN), MSc
local.programmeSoftware engineering and technology (MPSOF), MSc

Ladda ner

Original bundle

Visar 1 - 1 av 1
Hämtar...
Bild (thumbnail)
Namn:
CSE 25-37 AB MC.pdf
Storlek:
3.03 MB
Format:
Adobe Portable Document Format

License bundle

Visar 1 - 1 av 1
Hämtar...
Bild (thumbnail)
Namn:
license.txt
Storlek:
2.35 KB
Format:
Item-specific license agreed upon to submission
Beskrivning: