CVE-2026-63270 is a vulnerability in LibreOffice version 26.2 where URLs constructed from environment variables or INI file values could lead to exposure of sensitive information. This occurs because certain document elements (XForms instance data and Calc csv and sql data providers) still allowed expansion of internal schemes in URLs, enabling potential exfiltration of sensitive data to remote servers. The issue was addressed by refusing URLs with internal schemes from documents in fixed versions.
CVE-2026-63269 is a server-side request forgery (SSRF) vulnerability in LibreOffice version 26.2. The issue arises when LibreOffice links to audio and video files, specifically on Linux where it uses GStreamer to play media. An attacker could craft an HLS playlist that causes GStreamer to read local and remote files listed in the playlist during document loading, potentially exposing their contents. The vulnerability has been addressed in fixed versions by preventing LibreOffice from following playlists that reference further resources and by placing linked media under link update control.
CVE-2026-63267 is a server-side request forgery (SSRF) vulnerability in LibreOffice Calc version 26.2. It allows a document to link a cell range to an external CSV data source, which is fetched when the document loads. This behavior could enable reading local files into the spreadsheet or making requests to arbitrary hosts chosen by the document. The vulnerability is addressed in fixed versions where external data links are updated under the same control as other spreadsheet links.
CVE-2026-63266 is a path traversal vulnerability in LibreOffice Calc version 26.2. It involves linking a cell range to an external data source, allowing a document to open an embedded Firebird database that could write files to any location writable by the user. Fixed versions restrict the embedded Firebird database to operate only within its private directory.
LibreOffice Calc can link a cell range to an external data source, and the link is saved in the document. A link of the sql type could name a folder of local text files as a database, so opening a document could read a local text file into the sheet. In fixed versions only the csv, html and xml data providers are restored when a document is loaded.
LibreOffice Calc can link a cell range to an external data source, and the link is saved in the document. A document could name a Java database driver for such a link to be loaded from a remote location, so opening the document could run Java code from that location. In fixed versions an entry in a Java class path has to be a file URL.
LibreOffice can import PICT images, which may be embedded in documents. An out of bounds read existed when importing an image that uses a colour palette. The palette index held in the image data was used without being checked against the number of entries the palette has, so an index past the last entry read memory outside the palette. In fixed versions the palette index is limited to the entries present.
URLs could be constructed which expanded environment variable or INI file values, so potentially sensitive information could be exfiltrated to a remote server on opening a document containing such links. The check added for CVE-2024-12426 did not recognise every way of naming the package content provider, so a URL that named it differently still reached the expansion. In fixed versions the package content provider is matched when the URL is checked.
LibreOffice converts CFF fonts to Type 1 when it subsets a font, which happens when a document is exported to PDF, and CFF fonts may be embedded in documents. A stack buffer overflow existed in that conversion. The converted operators were written into a fixed size buffer with no check that they still fit, so a glyph emitting many operators wrote past the end of the buffer. In fixed versions the remaining capacity is tracked and the conversion stops when it is used up.
LibreOffice can read CFF fonts, which may be embedded in documents. A stack buffer overflow existed when reading the hints of a glyph. The number of hints was checked against the wrong bound, so a glyph declaring more hints than the array can hold wrote past its end. In fixed versions the hint count is checked against the capacity the array really has.
LibreOffice Draw can import PDF documents. A heap buffer overflow existed when importing a stream object. The length of the stream was taken from the object's own dictionary and was not checked against the number of bytes actually present, so copying the stream read and wrote past the end of the buffer holding it. In fixed versions the declared length is clamped to the bytes actually read.
LibreOffice Draw can import PDF documents. A heap buffer overflow existed when importing an encrypted document. The length of the decryption key was taken from the document's own encryption dictionary and was used to fill a fixed size key buffer without being checked against it, so a length larger than that buffer wrote past its end. In fixed versions a declared key length larger than the buffer is rejected.
LibreOffice can import WMF graphics, which may be embedded in documents. A heap buffer overflow existed when importing a text record that carries its own character advance widths. The count of advance values and the length of the text were read separately from the file and were not required to agree, so drawing the text walked the advance array by character position and ran past its end when the array was the shorter of the two. In fixed versions an advance array shorter than its text is ignored.
A heap buffer overflow vulnerability exists in LibreOffice Calc when importing tracked changes from spreadsheet documents that reuse the same change identifier for different change types. This causes a type confusion where the importer treats one change object as a larger type, leading to out-of-bounds memory writes. The issue affects versions 25.8 and 26.2. The vulnerability has a medium severity rating with a CVSS score of 5.4. No official patch or remediation information is currently available.
LibreOffice Calc compiles cell formulas when opening a spreadsheet. A heap buffer overflow existed when compiling a very long formula made up of many opening tokens. The array that tracks nesting depth was allocated one element too small for that worst case, so such a formula wrote one element past its end. In fixed versions the array is sized to hold the largest possible nesting.
LibreOffice can import presentations in the legacy binary PPT format. A stack buffer overflow existed when importing a colour-replacement record. Two fixed-size colour tables were filled from the file, but the write position was not reset between the two passes over the record, so a file whose combined colour counts exceeded the table size wrote past the end of the tables on the stack. In fixed versions the unused second pass is no longer read into those tables.
LibreOffice can import documents in the OOXML format (DOCX). A heap buffer overflow existed when replaying deferred parser events for a text box element. A handler object was assumed to be of one type and written to at that type's field layout, but it could be a smaller object, so the write landed past the end of the allocation. In fixed versions the type is checked before the write.
LibreOffice can import EMF+ graphics, which may be embedded in documents. A heap buffer overflow existed when importing an EMF+ gradient brush. The number of gradient blend points was read from the file and used to compute an allocation size, but that multiplication could overflow, so a small buffer was allocated and then filled as if it were large, writing past its end. In fixed versions the blend-point count is checked against the data actually available before allocating.
A heap use-after-free existed when importing the blank-width characters of an ODF number format. A position value read from the document was not checked against the length of the format-code string, so a malformed number format could be processed against memory outside that string. In fixed versions the position is bounds-checked before use.