LLVM Security Group Transparency Reports#
This page lists the yearly LLVM Security Response group transparency reports.
The LLVM Security Response group started out as the LLVM security group, previous yearâs transparency reports keep the original name.
Initially the Chromium issue tracker was used to record issues. This component has been archived and is read-only. A GitHub llvm/llvm-project issue has been created for each issue in the Chromium issue tracker. All of these issues contain an attached PDF with the content of the Chromium issue, and have the SecurityArchive label.
Each Chromium issue has 3 URLs, the first is the original URL recorded in previous transparency reports. The second is the redirect URL to the archive. The third is to the GitHub archive issue.
2021#
The LLVM security group was established on the 10th of July 2020 by the act of the initial commit describing the purpose of the group and the processes it follows. Many of the groupâs processes were still not well-defined enough for the group to operate well. Over the course of 2021, the key processes were defined well enough to enable the group to operate reasonably well:
We defined details on how to report security issues, see this commit on 20th of May 2021
We refined the nomination process for new group members, see this commit on 30th of July 2021
We started writing an annual transparency report (youâre reading the 2021 report here).
Over the course of 2021, we had 2 people leave the LLVM Security group and 4 people join.
In 2021, the security group received 13 issue reports that were made publicly visible before 31st of December 2021. The security group judged 2 of these reports to be security issues:
original: https://bugs.chromium.org/p/llvm/issues/detail?id=5 redirect: https://issuetracker.google.com/issues/42410043 archive: https://github.com/llvm/llvm-project/issues/125709
original: https://bugs.chromium.org/p/llvm/issues/detail?id=11 redirect: https://issuetracker.google.com/issues/42410002 archive: https://github.com/llvm/llvm-project/issues/127644
Both issues were addressed with source changes: #5 in clangd/vscode-clangd, and #11 in llvm-project. No dedicated LLVM release was made for either.
We believe that with the publishing of this first annual transparency report, the security group now has implemented all necessary processes for the group to operate as promised. The groupâs processes can be improved further, and we do expect further improvements to get implemented in 2022. Many of the potential improvements end up being discussed on the monthly public call on LLVMâs security group.
2022#
In this section we report on the issues the group received in 2022, or on issues that were received earlier, but were disclosed in 2022.
In 2022, the llvm security group received 15 issues that have been disclosed at the time of writing this transparency report.
5 of these were judged to be security issues:
https://bugs.chromium.org/p/llvm/issues/detail?id=17 reports a miscompile in LLVM that can result in the frame pointer and return address being overwritten. This was fixed. Redirect: https://issuetracker.google.com/issues/42410008 archive: https://github.com/llvm/llvm-project/issues/127645
https://bugs.chromium.org/p/llvm/issues/detail?id=19 reports a vulnerability in std::filesystem::remove_all in libc++. This was fixed. Redirect: https://issuetracker.google.com/issues/42410010 archive: https://github.com/llvm/llvm-project/issues/127647
https://bugs.chromium.org/p/llvm/issues/detail?id=23 reports a new Spectre gadget variant that Speculative Load Hardening (SLH) does not mitigate. No extension to SLH was implemented to also mitigate against this variant. Redirect: https://issuetracker.google.com/issues/42410015 archive: https://github.com/llvm/llvm-project/issues/127648
https://bugs.chromium.org/p/llvm/issues/detail?id=30 reports missing memory safety protection on the (C++) exception handling path. A number of fixes were implemented. Redirect: https://issuetracker.google.com/issues/42410023 archive: https://github.com/llvm/llvm-project/issues/127649
https://bugs.chromium.org/p/llvm/issues/detail?id=33 reports the RETBLEED vulnerability. The outcome was clang growing a new security hardening feature -mfunction-return=thunk-extern, see https://reviews.llvm.org/D129572. Redirect: https://issuetracker.google.com/issues/42410026 archive: https://github.com/llvm/llvm-project/issues/127650
No dedicated LLVM releases were made for any of the above issues.
2023#
In this section we report on the issues the group received in 2023, or on issues that were received earlier, but were disclosed in 2023.
9 of these were judged to be security issues:
https://bugs.chromium.org/p/llvm/issues/detail?id=36 reports the presence of .git folder in https://llvm.org/.git. Redirect: https://issuetracker.google.com/issues/42410029 archive: https://github.com/llvm/llvm-project/issues/131841
https://bugs.chromium.org/p/llvm/issues/detail?id=66 reports the presence of a GitHub Personal Access token in a DockerHub imaage. Redirect https://issuetracker.google.com/issues/42410060 archive: https://github.com/llvm/llvm-project/issues/131846
https://bugs.chromium.org/p/llvm/issues/detail?id=42 reports a potential gap in the Armv8.1-m BTI protection, involving a combination of large switch statements and __builtin_unreachable() in the default case. Redirect: https://issuetracker.google.com/issues/42410035 archive: https://github.com/llvm/llvm-project/issues/131848
https://bugs.chromium.org/p/llvm/issues/detail?id=43 reports a dependency on an old version of xml2js with a CVE filed against it. Redirect: https://issuetracker.google.com/issues/42410036 archive: https://github.com/llvm/llvm-project/issues/131849
https://bugs.chromium.org/p/llvm/issues/detail?id=45 reports a number of dependencies that have had vulnerabilities reported against them. Redirect: https://issuetracker.google.com/issues/42410038 archive: https://github.com/llvm/llvm-project/issues/131851
https://bugs.chromium.org/p/llvm/issues/detail?id=46 is related to issue 43. Redirect https://issuetracker.google.com/issues/42410039 archive: https://github.com/llvm/llvm-project/issues/131852
https://bugs.chromium.org/p/llvm/issues/detail?id=48 reports a buffer overflow in std::format from -fexperimental-library. Redirect: https://issuetracker.google.com/issues/42410041 archive: https://github.com/llvm/llvm-project/issues/131856
https://bugs.chromium.org/p/llvm/issues/detail?id=54 reports a memory leak in basic_string move assignment when built with libc++ versions <=6.0 and run against newer libc++ shared/dylibs. Redirect: https://issuetracker.google.com/issues/42410047 archive: https://github.com/llvm/llvm-project/issues/131857
https://bugs.chromium.org/p/llvm/issues/detail?id=56 reports an out of bounds buffer store introduced by LLVM backends, that regressed due to a procedural oversight. Redirect https://issuetracker.google.com/issues/42410049 archive: https://github.com/llvm/llvm-project/issues/131858
No dedicated LLVM releases were made for any of the above issues.
Over the course of 2023 we had one person join the LLVM Security Group.
2024#
Introduction#
In the first half of 2024, LLVM used the Chromium issue tracker to enable reporting security issues responsibly. We switched over to using GitHubâs âprivately reporting a security vulnerabilityâ workflow in the middle of 2024.
In previous years, our transparency reports were shorter, since the full discussion on a security ticket in the Chromium issue tracker is fully visible once disclosed. This is not the case with issues using GitHubâs security advisory workflow, so instead we give a longer description in this transparency report, to make the relevant information on the ticket publicly available.
This transparency report doesnât necessarily mention all issues that were deemed duplicates of other issues, or tickets only created to test the bug tracking system.
Security issues fixed under a coordinated disclosure process#
This section lists the reported issues where we ended up implementing fixes under a coordinated disclosure process. While we were still using the Chromium issue tracker, we did not write security advisories for such issues. Since we started using the GitHub issues tracker for security issues, weâre now publishing security advisories for those issues at https://github.com/llvm/llvm-security-repo/security/advisories/.
âUnexpected behavior when using LTO and branch-protection togetherâ
Details are available at https://bugs.chromium.org/p/llvm/issues/detail?id=58
redirect: https://issuetracker.google.com/issues/42410051
archive: https://github.com/llvm/llvm-project/issues/132185âSecurity weakness in PCS for CMSEâ (CVE-2024-0151)
Details are available at https://bugs.chromium.org/p/llvm/issues/detail?id=68
redirect: https://issuetracker.google.com/issues/42410062
archive: https://github.com/llvm/llvm-project/issues/132186âCMSE secure state may leak from stack to floating-point registersâ (CVE-2024-7883)
Details are available at GHSA-wh65-j229-6wfp
Issues deemed to not require coordinated action before disclosing publicly#
âClang Address Sanitizer gives False Negative for Array Out of Bounds Compiled with Optimizationâ
Details are available at https://bugs.chromium.org/p/llvm/issues/detail?id=57
redirect: https://issuetracker.google.com/issues/42410050
archive: https://github.com/llvm/llvm-project/issues/132191âFound exposed .svn folderâ
Details are available at https://bugs.chromium.org/p/llvm/issues/detail?id=59
redirect: https://issuetracker.google.com/issues/42410052 archive: https://github.com/llvm/llvm-project/issues/132192âArbitrary code execution when combining SafeStack + dynamic stack allocations + __builtin_setjmp/longjmpâ
Details are available at https://bugs.chromium.org/p/llvm/issues/detail?id=60
redirect: https://issuetracker.google.com/issues/42410054 archive: https://github.com/llvm/llvm-project/issues/132220âRISC-V: Constants are allocated in writeable .sdata sectionâ
Details are available at https://bugs.chromium.org/p/llvm/issues/detail?id=61
redirect: https://issuetracker.google.com/issues/42410055
archive: https://github.com/llvm/llvm-project/issues/132223âManifest File with Out-of-Date Dependencies with CVEsâ
Details are available at https://bugs.chromium.org/p/llvm/issues/detail?id=62
redirect: https://issuetracker.google.com/issues/42410056
archive: https://github.com/llvm/llvm-project/issues/132225âNon-const derived ctor should fail compilation when having a consteval base ctorâ
Details are available at https://bugs.chromium.org/p/llvm/issues/detail?id=67
redirect: https://issuetracker.google.com/issues/42410061
archive: https://github.com/llvm/llvm-project/issues/132226âWrong assembly code generation. Branching to the corrupted âLRâ.â
Details are available at https://bugs.chromium.org/p/llvm/issues/detail?id=69
redirect: https://issuetracker.google.com/issues/42410063
archive: https://github.com/llvm/llvm-project/issues/132229âSecurity bug reportâ
Details are available at https://bugs.chromium.org/p/llvm/issues/detail?id=70
redirect: https://issuetracker.google.com/issues/42410065
archive: https://github.com/llvm/llvm-project/issues/132233âUsing ASan with setuid binaries can lead to arbitrary file write and elevation of privilegesâ
Details are available at https://bugs.chromium.org/p/llvm/issues/detail?id=73
redirect: https://issuetracker.google.com/issues/42410068
archive: https://github.com/llvm/llvm-project/issues/132235âInteresting bugs for bool variable in clang projects and aarch64 modes outputting inaccurate results.â
GHSA-w7qc-292v-5xh6
The issue reported is on a source code example having undefined behaviour (UB), somewhat similar to this: https://godbolt.org/z/vo4P7bPYr. Therefore, this issue was closed as not a security issue in the compiler.
As part of the analysis on this issue, it was deemed useful to document this example of UB and similar cases to help users of compilers understand how UB in source code can lead to security issues.
We concluded that probably the best option to do so is to create a regular public issue at https://github.com/llvm/llvm-project/issues, with the same title as the security issue, and to attach a PDF (which should easily be created using a âprint-to-pdfâ method in the browser) containing all comments. Such public tickets probably need some consistent way to indicate they come from security issues that after analysis were deemed to be outside the LLVM threat model or werenât accepted as a needs-resolution-work-in-private security issue for other reasons. The LLVM Security Response group has so far not taken action to progress this idea.
There was also a suggestion of potentially adding a short section in https://llsoftsec.github.io/llsoftsecbook/#compiler-introduced-security-vulnerabilities that summarizes a short example showing that type aliasing UB can and is causing security vulnerabilities.âllvm-libc qsort can use very large amounts of stack if an attacker can control its input listâ
GHSA-gw5j-473x-p29m
If the llvm-libc qsort function is used in a context where its input list comes from an attacker, then the attacker can craft a list that causes qsortâs stack usage to be linear in the size of the input array, potentially overflowing the available memory region for the stack.
After discussion with stakeholders, including maintainers for llvm-libc, the conclusion was that this doesnât have to be processed as a security issue needing coordinated disclosure. An improvement to qsortâs implementation was implemented through pull request https://github.com/llvm/llvm-project/pull/110849.âVersionFromVCS.cmake may leak secrets in released buildsâ
GHSA-rcw6-jqvr-fcrx
The LLVM build system may leak secrets of VCS configuration into release builds if the user clones the repo with an https link that contains their username and/or password.
Mitigations were implemented in https://github.com/llvm/llvm-project/pull/105220, https://github.com/llvm/llvm-project/commit/57dc09341e5eef758b1abce78822c51069157869. An issue was raised to suggest one more mitigation to be implemented at https://github.com/llvm/llvm-project/issues/109030.
Invalid issues#
The LLVM security group received 5 issues which were created accidentally or were not related to the LLVM project. The subject lines for these were:
âFound this in my androidâ
â[Not a new security issue] Continued discussion for GHSA-w7qc-292v-5xh6â
âplease delete it.â
âPlease help me to delete it.â
âllvm code being used in malicious hacking of network and childrenâs devicesâ
Furthermore, we had 2 tickets that were created to test the setup and workflow as part of migrating to GitHubâs âsecurity advisoryâ-based reporting:
âTest if new draft security advisory gets emailed to LLVM security groupâ
GHSA-82m9-xvw3-rvpvâTest that a non-admin can create an advisory (no vulnerability).â
GHSA-34gr-6c7h-cc93
2025#
Introduction#
2025 was the first year all reports were submitted using Github. We report on the issues the group received in 2025, or on issues that were received earlier, but were disclosed in 2025.
We group the issues into the following categories:
Security issues fixed under a coordinated disclosure process (2 issues)
Supply chain security related issues and project services-related issues (2 issues)
Issues deemed to not require coordinated action before disclosing publicly (11 issues)
Invalid issues (5 issues)
In 2025, we received 2 invalid issues that we believe that have been created automatically and 1 issue appeared to be created using generative AI. That issue was considered to be invalid.
Security issues fixed under a coordinated disclosure process#
This section lists the reported issues where we ended up implementing fixes under a coordinated disclosure process. The security advisories for those issues can be found at https://github.com/llvm/llvm-security-repo/security/advisories/.
âCMSE secure state may leak from stack to floating-point registersâ
Details are available at GHSA-wh65-j229-6wfpâBinary executable injection vulnerability in clang-linker-wrapper.exeâ
Details are available at GHSA-hrx2-grgx-9vhg
Supply chain security related issues and project services-related issues#
âCritical Supply Chain Vulnerability in RockstarGames/llvm-project (CVE-2025-30066)â
Details are available at GHSA-3fq9-qcq4-8jjr
The issue had already been fixed with commit 6616acd80cd91.âCVE-2022-25883 and CVE-2022-3517 with respect to llvm-project/mlir/utils/vscode/package-lock.jsonâ
Details are available at GHSA-g72r-487m-m6hh
Packages have been updated with PR 144479.
Issues deemed to not require coordinated action before disclosing publicly#
âCoroutine Frame-Oriented Programming: A new exploitation method using C++ coroutinesâ
Details are available at GHSA-v8pv-j8f5-qqcg
The researchers shared a new exploitation method that leverages the implementation of C++ routines. Their paper describing the technique has been published and is available publicly.âSecurity Bug in String Assign Function (libc++)â
Details are available at GHSA-m967-6j3p-jrwc
There has been an agreement that the proof of concept had undefined behavior which makes it out of scope according to the LLVM threat model.â[clangd] heap-use-after-free in clangd when generating diagnosticsâ
Details are available at GHSA-5426-9r4h-7whf
It has been agreed this report fell out of scope because it was caused by untrusted inputs, as described in the LLVM threat model.âA compiler optimization bug may cause signed integer overflow detection be bypassedâ
Details are available at GHSA-w6jm-h8j9-q33r
There has been an agreement that the PoC had undefined behavior which makes it out of scope according to the LLVM threat model.âlibomp: Crash (OOB Write / ASan BUS Error) involving omp_init_lock under high concurrencyâ
Details are available at GHSA-cfhc-jxq2-97mf
The group agreed to close this as not a security issue because the code was written without taking into consideration the expectations from the OpenMP specification.â[MLIR] head-use-after-free in mlir-lsp-server on completion requestâ
Details are available at GHSA-8j9r-qc4r-q9fh
This report fell out of scope because it was caused by untrusted inputs, as described in the LLVM threat model.â[clangd/clang] heap-buffer-overflow in clang/lib/Sema/SemaExprCXX.cpp:9144â
Details are available at GHSA-qq8q-r524-8vw9
This issue and the following 3 were concluded to be outside of the LLVM threat model.â[clangd] heap-buffer-overflow in clang/lib/Sema/SemaExprCXX.cpp:8876â
Details are available at GHSA-3xm9-vccr-fxx5â[clangd/clang] heap-use-after-free at clang/Sema/Ownership.h:81â
Details are available at GHSA-qj36-2p7g-83gvâClang 20.1.0 Compiler Internal Error (Crash) during AST Parsing of C++23â
Details are available at GHSA-p2g2-89wf-7gcmâCompiler-induced non-constant-time codeâ
Details are available at GHSA-627p-g235-23pm
The reporters shared a pre-print article evaluating non-constant-time code generated by Clang. We all agreed this did not need coordinated disclosure because Clang offers no guarantees of constant-time code.
Invalid issues#
The LLVM security group received 5 issues which were created accidentally or were not related to the LLVM project. The subject lines for these were:
âllvm-Bugâ
âPotential Negative Number Used as Indexâ
âI was recently hacked⌠maybe you folks might know the dev?â
âASP.NETconfiguration: Creating Debug Binary in
[](https://github.com/llvm/llvm-project/actions/workflowsââASP.NETconfiguration: Creating Debug Binary in
[](https://github.com/llvm/llvm-project/actions/workflowsâ