#1134991 libskia: CVE-2025-32318 CVE-2026-5870 CVE-2026-6364 CVE-2026-6298

Package:
src:libskia
Source:
src:libskia
Submitter:
Moritz Mühlenhoff
Date:
2026-05-11 17:35:02 UTC
Severity:
normal
Tags:
#1134991#5
Date:
2026-04-26 18:32:17 UTC
From:
To:
Hi,

The following vulnerabilities were published for Google Chrome, but
are apparently in Skia.

With Skia now packaged we need some upstream commitment for transparent
security handling, specifically we need to know which commits fix
which CVE.

Are you in touch with upstream, is there some channel where they could
keep you notified?


CVE-2025-32318[0]:
| In Skia, there is a possible out of bounds write due to a heap
| buffer overflow. This could lead to remote escalation of privilege
| with no additional execution privileges needed. User interaction is
| not needed for exploitation.

CVE-2026-5870[1]:
| Integer overflow in Skia in Google Chrome prior to 147.0.7727.55
| allowed a remote attacker to execute arbitrary code inside a sandbox
| via a crafted HTML page. (Chromium security severity: High)

CVE-2026-6364[2]:
| Out of bounds read in Skia in Google Chrome prior to 147.0.7727.101
| allowed a remote attacker to obtain potentially sensitive
| information from process memory via a crafted file. (Chromium
| security severity: Medium)

CVE-2026-6298[3]:
| Heap buffer overflow in Skia in Google Chrome prior to
| 147.0.7727.101 allowed a remote attacker to obtain potentially
| sensitive information from process memory via a crafted HTML page.
| (Chromium security severity: Critical)


If you fix the vulnerabilities please also make sure to include the
CVE (Common Vulnerabilities & Exposures) ids in your changelog entry.

For further information see:

[0] https://security-tracker.debian.org/tracker/CVE-2025-32318
https://www.cve.org/CVERecord?id=CVE-2025-32318
[1] https://security-tracker.debian.org/tracker/CVE-2026-5870
https://www.cve.org/CVERecord?id=CVE-2026-5870
[2] https://security-tracker.debian.org/tracker/CVE-2026-6364
https://www.cve.org/CVERecord?id=CVE-2026-6364
[3] https://security-tracker.debian.org/tracker/CVE-2026-6298
https://www.cve.org/CVERecord?id=CVE-2026-6298

Please adjust the affected versions in the BTS as needed.

#1134991#10
Date:
2026-04-27 14:56:30 UTC
From:
To:
Hi,

Thank you for the detailed bug report! I noticed some other CVEs in the
tracker earlier, but as some of them disappeared previously I assume
they were deemed to not apply to the packaged version in spite of the
difficulties with connecting CVEs to upstream commits.

I am working on this, it is a bit difficult as it is not possible to
submit new bugs to the bug tracker, presumably due to spam. I have
raised this issue in a patch I submitted upstream, so hopefully the
situation will improve soon. I am also in contact with a previous Skia
developer. They are perhaps able to help if my efforts so far are not
successful.

I have done some digging for the CVEs mentioned, and I will shortly
detail my findings below. One thing that makes this difficult is that I
have (understandably) not found additional details as to *where* in Skia
these issues are (so I can determine if they are fixed and/or develop
patches). Does Debian have access to more details that I can access
somehow? With this information I could probably track down fixes fairly
easily (although it is of course preferable if I could get this
information directly from upstream).

Looking at the bulletin referenced in the CVE, it notes the reference
A-383366951. Looking it up in Google's issue tracker (linked from [0])
it leads me to [1]. I note that the date of the bug report is earlier
than the CVE, so the ID might reference some other bug tracker (but I
know that public announcement is not always done immediately to give
vendors time to patch the issue, for example). However, the issue
references a location inside Skia that can be triggered by e.g. decoding
PNG files. It makes sense that this could lead to privilege escalation
by e.g. sending a notification with a PNG to the system notifications
process.

If my understanding of the above is correct, then this CVE is fixed in
commit 4076192f7458b29054211385b43c06335c46d7df [2], which is included
in the packaged version. I have asked upstream about this, as I would
like it verified.


As for the other CVEs, there have been 3 commits to the stable branch
for milestone 146 since the release I packaged, as below (I have
reordered them to fit the commit ordering).

 > CVE-2026-6364[2]:
 > | Out of bounds read in Skia in Google Chrome prior to 147.0.7727.101
 > | allowed a remote attacker to obtain potentially sensitive
 > | information from process memory via a crafted file. (Chromium
 > | security severity: Medium)

The first one, 30d129c8800b5626c46fb83fa62db10b9b22b319 (review linked
in the commit [3]) speaks about an out of bounds read in the JPEG
decoder. While I don't have permissions to view the bug and I am
therefore not able to verify, this seems likely.

Same thing, bc591f8db342ee912fbb92aadde2a088e0ab8470 [4] speaks about
bounds checking for integers, and casting integers to 16-bit integers
(thus more likely to overflow them without detection). Likely this one,
but as with the previous one I am unable to verify the connection to the
CVE.

Same thing here, ef5f213b0436c53fdf59184d9536eb5ee5aa8084 [5]. It adds
bounds checks to lattice-based code so that it properly validates some
assumptions. The patched function notes that it has pointers directly
inside the buffer, making it likely that it can be used to read process
memory without the patch. Again, I am not able to verify this assumption
with official sources.



As such, the CVE-2025-* is probably already addressed upstream and
included in the current version (take my slight uncertainty regarding
bug numbers upstream into account). The other three (CVE-2026-*) seem to
be patched by upstream and will be included in the next upload.

I will see if I manage to get more information from upstream as well. A
more definitive connection between CVEs and bugs would be highly
beneficial and avoid potential guesswork.

I will keep this in mind! Is there a specific format to follow (like
with closes), or is it enough to just mention the CVEs?




[0] https://source.android.com/docs/setup/contribute/report-bugs
[1] https://issuetracker.google.com/issues/390261249
[2]
https://skia.googlesource.com/skia/+/4076192f7458b29054211385b43c06335c46d7df
[3] https://skia-review.googlesource.com/c/skia/+/1181498
[4] https://skia-review.googlesource.com/c/skia/+/1199497
[5] https://skia-review.googlesource.com/c/skia/+/1208956

#1134991#15
Date:
2026-04-27 15:23:20 UTC
From:
To:
Hi again,

I heard back from upstream with some updates as per below.
[snip]

CVEs are mentioned in the bugs associated with the change-IDs mentioned
in commits. They are not public immediately (so I can't verify for these
particular CVEs easily). I will ask if I can view this information a bit
earlier on Debian's behalf so that I can confirm which version fixes
particular CVEs without having to wait for them to become public.
[snip]

Verified as included in m146 by upstream. Not a particular commit, however.

It turns out that 2/3 of these CVEs are fixed in the m146 branch. The
last one is fixed for a later release, but I assume it will be
backported to m146 (LTS release) in not too long. I will wait a bit more
to see upstream's status here, and then upload as appropriate.

[snip]

#1134991#20
Date:
2026-04-27 17:54:18 UTC
From:
To:
Sadly we don't either. Our only source is the descriptions of the Chrome
advisories, where they mention Skia as the root cause.

Cheers,
        Moritz

#1134991#25
Date:
2026-04-29 20:31:44 UTC
From:
To:
Hello,

I just uploaded a new version of libskia (146.20260414). As noted in the
changelog, the new upstream version fixes CVE-2026-6364 and
CVE-2026-6298. CVE-2026-5870 was fixed in the m147 branch (not yet
landed in the m146 branch) and I have included that fix as a patch until
it lands in the m146 branch upstream.

Upstream confirmed that the fix for CVE-2025-32318 "would definitely be
included m146's release at this point" (although they were unable to
find a specific commit since the vulnerability was found in Android). As
such no versions in Debian have been affected by this vulnerability, and
therefore I did not mention this CVE in the changelog.


I opted to not close this bug as the question of a more formal
communication channel with upstream is not solved as of yet. The issue
tracker and associated commits are public. The missing link is which
change-ids (= commit + cherry-picks to stable branches) correspond to
which CVEs. This information seems to become available to the public 12
weeks after bugs are fixed by default (which is a bit late IMO). For
these changes I have just e-mailed the developer who made the changes
and received fairly quick confirmation about which commits fix which
CVEs, so it is workable until we have something better.


I leave it up to you to decide how to adjust the bug (i.e. closing it as
CVEs are fixed/confirmed fixed previously, modifying severity since the
issue of an official channel remains, etc.)

Best regards,
    Filip

#1134991#30
Date:
2026-05-11 17:32:56 UTC
From:
To:
As mentioned in a previous message, these CVEs have been patched in
version 146.20260414 (or for the 2025 one, confirmed to have been fixed
by the time of m146's release).

For identifying commits fixing CVEs, I have found a way using
information from upstream to identify the relevant commits before
upstream makes all information in the issues public (14 weeks by
default). This is documented in the wiki in the Salsa repository [0].

As such, I am now closing this bug.


[0]: https://salsa.debian.org/fonts-team/libskia/-/wikis/pages