CVE-2019-13118
Description
In numbers.c in libxslt 1.1.33, a type holding grouping characters of an xsl:number instruction was too narrow and an invalid character/length combination could be passed to xsltNumberFormatDecimal, leading to a read of uninitialized stack data.
AI Insight
LLM-synthesized narrative grounded in this CVE's description and references.
In libxslt 1.1.33, an insufficiently wide type for grouping characters in xsl:number allows reading uninitialized stack data.
CVE-2019-13118 is a stack-based information disclosure vulnerability in libxslt version 1.1.33. The bug resides in the numbers.c file, where the type used to hold grouping characters for xsl:number processing is too narrow. This flaw causes an invalid combination of a character and its length to be passed to the xsltNumberFormatDecimal function, resulting in a read of uninitialized stack memory [2].
Exploitation requires processing a crafted XSLT stylesheet that includes a specially constructed xsl:number instruction. No authentication is needed if the attacker can supply the malicious XSLT to an application that processes it using the vulnerable libxslt library. The attack surface includes any service or application that handles user-supplied XSLT transforms, such as web browsers or document processing tools [1].
The impact is a limited but potentially valuable information leak: uninitialized stack data may contain sensitive information from earlier function calls. While this is not a code execution vulnerability, it could assist an attacker in bypassing memory protections like ASLR when combined with other bugs [2].
Apple addressed this issue by updating the libxslt included in macOS Mojave 10.14.6, Security Update 2019-004 High Sierra, and Security Update 2019-004 Sierra, released July 22, 2019 [1]. Users should apply the latest macOS updates to remediate this vulnerability.
AI Insight generated on May 22, 2026. Synthesized from this CVE's description and the cited reference URLs; citations are validated against the source bundle.
Affected packages
Versions sourced from the GitHub Security Advisory.
| Package | Affected versions | Patched versions |
|---|---|---|
nokogiriRubyGems | < 1.10.5 | 1.10.5 |
Affected products
10- libxslt/libxsltdescription
- ghsa-coords9 versionspkg:gem/nokogiripkg:rpm/opensuse/libxslt&distro=openSUSE%20Leap%2015.1pkg:rpm/opensuse/libxslt&distro=openSUSE%20Tumbleweedpkg:rpm/opensuse/libxslt-python&distro=openSUSE%20Leap%2015.1pkg:rpm/suse/libxslt&distro=SUSE%20Linux%20Enterprise%20Desktop%2012%20SP4pkg:rpm/suse/libxslt&distro=SUSE%20Linux%20Enterprise%20Module%20for%20Basesystem%2015%20SP1pkg:rpm/suse/libxslt&distro=SUSE%20Linux%20Enterprise%20Server%2012%20SP4pkg:rpm/suse/libxslt&distro=SUSE%20Linux%20Enterprise%20Server%20for%20SAP%20Applications%2012%20SP4pkg:rpm/suse/libxslt&distro=SUSE%20Linux%20Enterprise%20Software%20Development%20Kit%2012%20SP4
< 1.10.5+ 8 more
- (no CPE)range: < 1.10.5
- (no CPE)range: < 1.1.32-lp151.3.6.1
- (no CPE)range: < 1.1.34-3.2
- (no CPE)range: < 1.1.32-lp151.3.6.1
- (no CPE)range: < 1.1.28-17.6.1
- (no CPE)range: < 1.1.32-3.8.24
- (no CPE)range: < 1.1.28-17.6.1
- (no CPE)range: < 1.1.28-17.6.1
- (no CPE)range: < 1.1.28-17.6.1
Patches
143a175339b47dependency: update libxslt to 1.1.34 final
3 files changed · +14 −134
dependencies.yml+14 −13 modified@@ -29,13 +29,13 @@ libxml2: # libxslt: - version: "1.1.33" - sha256: "8e36605144409df979cab43d835002f63988f3dc94d5d3537c12796db90e38c8" + version: "1.1.34" + sha256: "98b1bd46d6792925ad2dfe9a87452ea2adebf69dcb9919ffd55bf926a7f93f7f" # manually verified checksum: # - # $ gpg --verify libxslt-1.1.33.tar.gz.asc ports/archives/libxslt-1.1.33.tar.gz - # gpg: Signature made Thu 03 Jan 2019 01:30:49 PM EST - # gpg: using RSA key 15588B26596BEA5D + # $ gpg --verify ~/Downloads/libxslt-1.1.34.tar.gz.asc ports/archives/libxslt-1.1.34.tar.gz + # gpg: Signature made Wed 30 Oct 2019 04:02:48 PM EDT + # gpg: using RSA key DB46681BB91ADCEA170FA2D415588B26596BEA5D # gpg: Good signature from "Daniel Veillard (Red Hat work email) <veillard@redhat.com>" [unknown] # gpg: aka "Daniel Veillard <Daniel.Veillard@w3.org>" [unknown] # gpg: WARNING: This key is not certified with a trusted signature! @@ -46,14 +46,15 @@ libxslt: # using this pgp signature: # # -----BEGIN PGP SIGNATURE----- - # - # iQEcBAABAgAGBQJcLlTZAAoJEBVYiyZZa+pd9NkIAIf6ei2iSpR/0QOyS71esDq8 - # 407PcUXd/yUjDANm4Uvm7kKK+SbbfBxFIPva4g984Noe1zYMfjK3u3iNs6jykySf - # mN5eo2wNCxsZnqjbnsLgQvn5VCQpPInTddTuGUxgqJyvnR7p785L1oA2EStSPMP4 - # BGZ9dZGlbreK35WzgrhUi0VN5egJW2fpMsw7rTPvfwK+90gXL0DEm8v3WlA7fCDL - # QsvuPm7jPOXxdt5bYrVP8wpNMTJIGqV6jxh7Vvl6kiGLldUjCyoCh0AGXLror0Gs - # sAMlRKJNodpcCYkIWxzjLt74sUciKNrPLHZlXJcclZMONen1GWnVDcv83Tt9n6w= - # =iAm8 + # + # iQEzBAABCAAdFiEE20ZoG7ka3OoXD6LUFViLJllr6l0FAl257GgACgkQFViLJllr + # 6l2vVggAjJEHmASiS56SxhPOsGqbfBihM66gQFoIymQfMu2430N1GSTkLsfbkJO8 + # 8yBX11NjzK/m9uxwshMW3rVCU7EpL3PUimN3reXdPiQj9hAOAWF1V3BZNevbQC2E + # FCIraioukaidf8sjUG4/sGpK/gOcP/3hYoN0HUoBigCNJjDqhijxM3M3GJJtCASp + # jL4CQbs2OmxW8ixOZbuWEESvFFHUgYRsdZjRVN+GRfSOvJjxypurmYwQ3RjO7JxL + # 2FY8qKQ+xpeID8NV8F5OUEvWBjk1QS133VTqBZNlONdnEtV/og6jNu5k0O/Kvhup + # caR+8TMErOcLr9OgDklO6DoYyAsf9Q== + # =g4i4 # -----END PGP SIGNATURE----- #
Manifest.txt+0 −1 modified@@ -236,4 +236,3 @@ lib/xsd/xmlparser/nokogiri.rb patches/libxml2/0001-Revert-Do-not-URI-escape-in-server-side-includes.patch patches/libxml2/0002-Remove-script-macro-support.patch patches/libxml2/0003-Update-entities-to-remove-handling-of-ssi.patch -patches/libxslt/0001-Fix-security-framework-bypass.patch
patches/libxslt/0001-Fix-security-framework-bypass.patch+0 −120 removed@@ -1,120 +0,0 @@ -From e03553605b45c88f0b4b2980adfbbb8f6fca2fd6 Mon Sep 17 00:00:00 2001 -From: Nick Wellnhofer <wellnhofer@aevum.de> -Date: Sun, 24 Mar 2019 09:51:39 +0100 -Subject: [PATCH] Fix security framework bypass - -xsltCheckRead and xsltCheckWrite return -1 in case of error but callers -don't check for this condition and allow access. With a specially -crafted URL, xsltCheckRead could be tricked into returning an error -because of a supposedly invalid URL that would still be loaded -succesfully later on. - -Fixes #12. - -Thanks to Felix Wilhelm for the report. ---- - libxslt/documents.c | 18 ++++++++++-------- - libxslt/imports.c | 9 +++++---- - libxslt/transform.c | 9 +++++---- - libxslt/xslt.c | 9 +++++---- - 4 files changed, 25 insertions(+), 20 deletions(-) - -diff --git a/libxslt/documents.c b/libxslt/documents.c -index 3f3a731..4aad11b 100644 ---- a/libxslt/documents.c -+++ b/libxslt/documents.c -@@ -296,10 +296,11 @@ xsltLoadDocument(xsltTransformContextPtr ctxt, const xmlChar *URI) { - int res; - - res = xsltCheckRead(ctxt->sec, ctxt, URI); -- if (res == 0) { -- xsltTransformError(ctxt, NULL, NULL, -- "xsltLoadDocument: read rights for %s denied\n", -- URI); -+ if (res <= 0) { -+ if (res == 0) -+ xsltTransformError(ctxt, NULL, NULL, -+ "xsltLoadDocument: read rights for %s denied\n", -+ URI); - return(NULL); - } - } -@@ -372,10 +373,11 @@ xsltLoadStyleDocument(xsltStylesheetPtr style, const xmlChar *URI) { - int res; - - res = xsltCheckRead(sec, NULL, URI); -- if (res == 0) { -- xsltTransformError(NULL, NULL, NULL, -- "xsltLoadStyleDocument: read rights for %s denied\n", -- URI); -+ if (res <= 0) { -+ if (res == 0) -+ xsltTransformError(NULL, NULL, NULL, -+ "xsltLoadStyleDocument: read rights for %s denied\n", -+ URI); - return(NULL); - } - } -diff --git a/libxslt/imports.c b/libxslt/imports.c -index 874870c..3783b24 100644 ---- a/libxslt/imports.c -+++ b/libxslt/imports.c -@@ -130,10 +130,11 @@ xsltParseStylesheetImport(xsltStylesheetPtr style, xmlNodePtr cur) { - int secres; - - secres = xsltCheckRead(sec, NULL, URI); -- if (secres == 0) { -- xsltTransformError(NULL, NULL, NULL, -- "xsl:import: read rights for %s denied\n", -- URI); -+ if (secres <= 0) { -+ if (secres == 0) -+ xsltTransformError(NULL, NULL, NULL, -+ "xsl:import: read rights for %s denied\n", -+ URI); - goto error; - } - } -diff --git a/libxslt/transform.c b/libxslt/transform.c -index 1379391..0636dbd 100644 ---- a/libxslt/transform.c -+++ b/libxslt/transform.c -@@ -3493,10 +3493,11 @@ xsltDocumentElem(xsltTransformContextPtr ctxt, xmlNodePtr node, - */ - if (ctxt->sec != NULL) { - ret = xsltCheckWrite(ctxt->sec, ctxt, filename); -- if (ret == 0) { -- xsltTransformError(ctxt, NULL, inst, -- "xsltDocumentElem: write rights for %s denied\n", -- filename); -+ if (ret <= 0) { -+ if (ret == 0) -+ xsltTransformError(ctxt, NULL, inst, -+ "xsltDocumentElem: write rights for %s denied\n", -+ filename); - xmlFree(URL); - xmlFree(filename); - return; -diff --git a/libxslt/xslt.c b/libxslt/xslt.c -index 780a5ad..a234eb7 100644 ---- a/libxslt/xslt.c -+++ b/libxslt/xslt.c -@@ -6763,10 +6763,11 @@ xsltParseStylesheetFile(const xmlChar* filename) { - int res; - - res = xsltCheckRead(sec, NULL, filename); -- if (res == 0) { -- xsltTransformError(NULL, NULL, NULL, -- "xsltParseStylesheetFile: read rights for %s denied\n", -- filename); -+ if (res <= 0) { -+ if (res == 0) -+ xsltTransformError(NULL, NULL, NULL, -+ "xsltParseStylesheetFile: read rights for %s denied\n", -+ filename); - return(NULL); - } - } --- -2.17.1 -
Vulnerability mechanics
Generated on May 9, 2026. Inputs: CWE entries + fix-commit diffs from this CVE's patches. Citations validated against bundle.
References
53- lists.opensuse.org/opensuse-security-announce/2020-05/msg00062.htmlghsavendor-advisoryx_refsource_SUSEWEB
- github.com/advisories/GHSA-cf46-6xxh-pc75ghsaADVISORY
- lists.fedoraproject.org/archives/list/package-announce%40lists.fedoraproject.org/message/IOYJKXPQCUNBMMQJWYXOR6QRUJZHEDRZ/mitrevendor-advisoryx_refsource_FEDORA
- nvd.nist.gov/vuln/detail/CVE-2019-13118ghsaADVISORY
- usn.ubuntu.com/4164-1/mitrevendor-advisoryx_refsource_UBUNTU
- seclists.org/fulldisclosure/2019/Aug/11ghsamailing-listx_refsource_FULLDISCWEB
- seclists.org/fulldisclosure/2019/Aug/13ghsamailing-listx_refsource_FULLDISCWEB
- seclists.org/fulldisclosure/2019/Aug/14ghsamailing-listx_refsource_FULLDISCWEB
- seclists.org/fulldisclosure/2019/Aug/15ghsamailing-listx_refsource_FULLDISCWEB
- seclists.org/fulldisclosure/2019/Jul/22ghsamailing-listx_refsource_FULLDISCWEB
- seclists.org/fulldisclosure/2019/Jul/23ghsamailing-listx_refsource_FULLDISCWEB
- seclists.org/fulldisclosure/2019/Jul/24ghsamailing-listx_refsource_FULLDISCWEB
- seclists.org/fulldisclosure/2019/Jul/26ghsamailing-listx_refsource_FULLDISCWEB
- seclists.org/fulldisclosure/2019/Jul/31ghsamailing-listx_refsource_FULLDISCWEB
- seclists.org/fulldisclosure/2019/Jul/37ghsamailing-listx_refsource_FULLDISCWEB
- seclists.org/fulldisclosure/2019/Jul/38ghsamailing-listx_refsource_FULLDISCWEB
- www.openwall.com/lists/oss-security/2019/11/17/2ghsamailing-listx_refsource_MLISTWEB
- bugs.chromium.org/p/oss-fuzz/issues/detailghsax_refsource_MISCWEB
- github.com/sparklemotion/nokogiri/blob/f7aa3b0b29d6fe5fafe93dacd9b96b6b3d16b7ec/CHANGELOG.mdghsaWEB
- github.com/sparklemotion/nokogiri/commit/43a175339b47b8c604508813fc75b83f13cd173eghsaWEB
- github.com/sparklemotion/nokogiri/issues/1943ghsaWEB
- github.com/sparklemotion/nokogiri/releases/tag/v1.10.5ghsaWEB
- gitlab.gnome.org/GNOME/libxslt/commit/6ce8de69330783977dd14f6569419489875fb71bghsax_refsource_MISCWEB
- lists.apache.org/thread.html/r58af02e294bd07f487e2c64ffc0a29b837db5600e33b6e698b9d696b%40%3Cissues.bookkeeper.apache.org%3Emitremailing-listx_refsource_MLIST
- lists.apache.org/thread.html/r58af02e294bd07f487e2c64ffc0a29b837db5600e33b6e698b9d696b@%3Cissues.bookkeeper.apache.org%3EghsaWEB
- lists.apache.org/thread.html/rf4c02775860db415b4955778a131c2795223f61cb8c6a450893651e4%40%3Cissues.bookkeeper.apache.org%3Emitremailing-listx_refsource_MLIST
- lists.apache.org/thread.html/rf4c02775860db415b4955778a131c2795223f61cb8c6a450893651e4@%3Cissues.bookkeeper.apache.org%3EghsaWEB
- lists.debian.org/debian-lts-announce/2019/07/msg00020.htmlghsamailing-listx_refsource_MLISTWEB
- lists.fedoraproject.org/archives/list/package-announce@lists.fedoraproject.org/message/IOYJKXPQCUNBMMQJWYXOR6QRUJZHEDRZghsaWEB
- oss-fuzz.com/testcase-detail/5197371471822848ghsax_refsource_MISCWEB
- seclists.org/bugtraq/2019/Aug/21ghsamailing-listx_refsource_BUGTRAQWEB
- seclists.org/bugtraq/2019/Aug/22ghsamailing-listx_refsource_BUGTRAQWEB
- seclists.org/bugtraq/2019/Aug/23ghsamailing-listx_refsource_BUGTRAQWEB
- seclists.org/bugtraq/2019/Aug/25ghsamailing-listx_refsource_BUGTRAQWEB
- seclists.org/bugtraq/2019/Jul/35ghsamailing-listx_refsource_BUGTRAQWEB
- seclists.org/bugtraq/2019/Jul/36ghsamailing-listx_refsource_BUGTRAQWEB
- seclists.org/bugtraq/2019/Jul/37ghsamailing-listx_refsource_BUGTRAQWEB
- seclists.org/bugtraq/2019/Jul/40ghsamailing-listx_refsource_BUGTRAQWEB
- seclists.org/bugtraq/2019/Jul/41ghsamailing-listx_refsource_BUGTRAQWEB
- seclists.org/bugtraq/2019/Jul/42ghsamailing-listx_refsource_BUGTRAQWEB
- security.netapp.com/advisory/ntap-20190806-0004ghsaWEB
- security.netapp.com/advisory/ntap-20190806-0004/mitrex_refsource_CONFIRM
- security.netapp.com/advisory/ntap-20200122-0003ghsaWEB
- security.netapp.com/advisory/ntap-20200122-0003/mitrex_refsource_CONFIRM
- support.apple.com/kb/HT210346ghsax_refsource_CONFIRMWEB
- support.apple.com/kb/HT210348ghsax_refsource_CONFIRMWEB
- support.apple.com/kb/HT210351ghsax_refsource_CONFIRMWEB
- support.apple.com/kb/HT210353ghsax_refsource_CONFIRMWEB
- support.apple.com/kb/HT210356ghsax_refsource_CONFIRMWEB
- support.apple.com/kb/HT210357ghsax_refsource_CONFIRMWEB
- support.apple.com/kb/HT210358ghsax_refsource_CONFIRMWEB
- usn.ubuntu.com/4164-1ghsaWEB
- www.oracle.com/security-alerts/cpujan2020.htmlghsax_refsource_MISCWEB
News mentions
0No linked articles in our index yet.