<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="../../assets/xml/rss.xsl" media="all"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Pentagrid AG (Einträge über Embedded device)</title><link>https://www.pentagrid.ch/</link><description></description><atom:link href="https://www.pentagrid.ch/de/categories/embedded-device.xml" rel="self" type="application/rss+xml"></atom:link><language>de</language><copyright>Contents © 2026 Pentagrid AG </copyright><lastBuildDate>Wed, 17 Jun 2026 13:20:23 GMT</lastBuildDate><generator>Nikola (getnikola.com)</generator><docs>http://blogs.law.harvard.edu/tech/rss</docs><item><title>Security misconfiguration in IKEA DIRIGERA smart hub web server exposes large parts of the root filesystem (GCVE-2342-2026-1)</title><link>https://www.pentagrid.ch/de/blog/ikea-dirigera-security-misconfiguration-web-server-exposes-root-filesystem/</link><dc:creator>Pentagrid AG</dc:creator><description>&lt;figure&gt;&lt;img src="https://www.pentagrid.ch/images/default_preview_image.jpeg"&gt;&lt;/figure&gt; &lt;p&gt;IKEA produces smart home devices and their newest generation uses the central &lt;a class="reference external" href="https://www.ikea.com/us/en/p/dirigera-hub-for-smart-products-white-smart-50503414/"&gt;DIRIGERA smart hub&lt;/a&gt;. After extracting the firmware, we started hunting for vulnerabilities of the device and found: An unauthenticated attacker on the network can download large parts of the files from the DIRIGERA hub root filesystem. This affects files that are accessible to the service user &lt;cite&gt;license-server&lt;/cite&gt;. These include binaries, firmware files, API keys and in general a lot of proprietary code written by Inter IKEA Systems.&lt;/p&gt;
&lt;!-- TEASER_END --&gt;
&lt;section id="timeline"&gt;
&lt;h2&gt;Timeline&lt;/h2&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;p&gt;2026-03-18: Vulnerability was discovered.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;2026-03-19: Tried to identify security contacts by checking IKEAS's security.txt, their GPG key and the web. The available online form for submissions was incompatible with Pentagrid's disclosure policy. Tried to contact &lt;a class="reference external" href="mailto:security@ikea.com"&gt;security@ikea.com&lt;/a&gt; by guessing the address, but the e-mail was bounced. Tried to reach out to IKEA via Linkedin and got afterwards contacted by Inter IKEA Systems.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;2026-03-23: IKEA confirms they are handling the security reports. Pentagrid sends a draft of this advisory.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;2026-03-26: Pentagrid contacts IKEA for a status update. IKEA confirms they are still triaging the issue.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;2026-04-29: Pentagrid contacts IKEA for a status update.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;2026-05-04: IKEA sends an update: The issue was a duplicate and reported shortly before Pentagrid's submission on Hackerone. A fix was released to production in the 2.934.1 release, which was released on 2026-04-09. The fix removes the license-server component from the build and that functionality has been reworked to be handled elsewhere outside of the hub. Pentagrid asks if disclosure could happen already. IKEA responds with with a list of questions regarding the disclosure.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;2026-05-06: Pentagrid responds to the list of questions and provides an early draft of this blog post.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;2026-05-13: Pentagrid asked for an update.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;2026-05-27: IKEA agrees that the provided answers/blog post draft are in order with them and Pentagrid can proceed as planned.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;2026-06-17: 90 days disclosure deadline and publication.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/section&gt;
&lt;section id="unauthenticated-file-download-via-licensing-server"&gt;
&lt;h2&gt;Unauthenticated file download via licensing server&lt;/h2&gt;
&lt;pre class="literal-block"&gt;CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:L/I:N/A:N, 5.8 Medium&lt;/pre&gt;
&lt;section id="affected-components"&gt;
&lt;h3&gt;Affected Components&lt;/h3&gt;
&lt;p&gt;The affected component is the IKEA DIRIGERA smart home hub created by Inter IKEA Systems. The device runs a busybox httpd web server on TCP port 8082, which runs as a systemd service under user &lt;cite&gt;license-server&lt;/cite&gt;.&lt;/p&gt;
&lt;p&gt;An initial firmware dump prior to the update showed the version information below. The system remained vulnerable after an update to a new firmware on 2026-03-18.&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code text"&gt;&lt;a id="rest_code_f5863024f8ca4ab6b48fa46d2ae5c419-1" name="rest_code_f5863024f8ca4ab6b48fa46d2ae5c419-1" href="https://www.pentagrid.ch/de/blog/ikea-dirigera-security-misconfiguration-web-server-exposes-root-filesystem/#rest_code_f5863024f8ca4ab6b48fa46d2ae5c419-1"&gt;&lt;/a&gt;[HomeSmart/Bootchain : 2.556]
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;and&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code text"&gt;&lt;a id="rest_code_63de5ea2fa1d41718371ff3595183cca-1" name="rest_code_63de5ea2fa1d41718371ff3595183cca-1" href="https://www.pentagrid.ch/de/blog/ikea-dirigera-security-misconfiguration-web-server-exposes-root-filesystem/#rest_code_63de5ea2fa1d41718371ff3595183cca-1"&gt;&lt;/a&gt;/etc/version
&lt;a id="rest_code_63de5ea2fa1d41718371ff3595183cca-2" name="rest_code_63de5ea2fa1d41718371ff3595183cca-2" href="https://www.pentagrid.ch/de/blog/ikea-dirigera-security-misconfiguration-web-server-exposes-root-filesystem/#rest_code_63de5ea2fa1d41718371ff3595183cca-2"&gt;&lt;/a&gt;20180309123456
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;The vulnerability was fixed in version 2.934.1.&lt;/p&gt;
&lt;/section&gt;
&lt;section id="summary"&gt;
&lt;h3&gt;Summary&lt;/h3&gt;
&lt;p&gt;An unauthenticated attacker on the network can download many files from the DIRIGERA hub root filesystem. The files must be accessible to the Linux user &lt;cite&gt;license-server&lt;/cite&gt;. These include binaries, firmware files, API keys as well as proprietary code written by Inter IKEA Systems.&lt;/p&gt;
&lt;/section&gt;
&lt;section id="impact"&gt;
&lt;h3&gt;Impact&lt;/h3&gt;
&lt;p&gt;During the analysis Pentagrid was able to download 9639 files from 3149 folders from the embedded device's filesystem over the network without any authentication. These files include:&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;p&gt;&lt;cite&gt;/usr/share/config/platform/data/settings.json&lt;/cite&gt; which includes the API key that is the same for two analysed DIRIGERA hubs.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;cite&gt;/boot/m4-firmware&lt;/cite&gt; which is assumed to be the Cortex M4 firmware.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Most binaries files -- here it becomes apparent that busybox is used since most of &lt;cite&gt;/bin/*&lt;/cite&gt; binaries return the same (busybox) file.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Configurations of services such as the vulnerable &lt;cite&gt;/lib/systemd/system/license-server.service&lt;/cite&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Intellectual property of Inter IKEA Systems B.V., e.g. shell code of &lt;cite&gt;/usr/sbin/boot-complete.sh&lt;/cite&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Operational parameters that are stored in &lt;cite&gt;/usr/share/{factory, config, persist}&lt;/cite&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The usage of systemd service hardening, the usage of the &lt;a class="reference external" href="https://www.st.com/en/secure-mcus/authentication.html"&gt;STSAFE&lt;/a&gt; enviroment, and proper Linux user permissions limits the impact. To the best of our knowledge no client specific cryptographic material is exposed to the network. What is assumed to be the client certificate under &lt;cite&gt;/usr/local/gw/datad/certs/cert_datacloud.crt&lt;/cite&gt; is not accessible and would further require the protected STSAFE secret for the also inaccessible &lt;cite&gt;/usr/local/gw/datad/certs/key_datacloud.key&lt;/cite&gt;.&lt;/p&gt;
&lt;p&gt;The extracted files expose configurations, intellectual property, proprietary software, and firmware of the Ikea DIRIGERA hub, such as the vulnerabilities of the license server that is exploited here. The impact of exposed software versions is considered insignificant since the license server gives a comprehensive overview about the used software and versions regardless.&lt;/p&gt;
&lt;/section&gt;
&lt;section id="technical-details"&gt;
&lt;h3&gt;Technical Details&lt;/h3&gt;
&lt;p&gt;The vulnerability originates from the misconfigured systemd service: &lt;cite&gt;/lib/systemd/system/license-server.service&lt;/cite&gt;. It serves a httpd server on port 8082 with a configuration file under &lt;cite&gt;/usr/share/common-licenses/httpd.conf&lt;/cite&gt;.&lt;/p&gt;
&lt;p&gt;Excerpt from file &lt;cite&gt;license-server.service&lt;/cite&gt;:&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code text"&gt;&lt;a id="rest_code_141e566db7714d9c8ac146c20a248eaf-1" name="rest_code_141e566db7714d9c8ac146c20a248eaf-1" href="https://www.pentagrid.ch/de/blog/ikea-dirigera-security-misconfiguration-web-server-exposes-root-filesystem/#rest_code_141e566db7714d9c8ac146c20a248eaf-1"&gt;&lt;/a&gt;ExecStart=httpd -f -p 8082 -c /usr/share/common-licenses/httpd.conf
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Excerpt from file &lt;cite&gt;httpd.conf&lt;/cite&gt;:&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code text"&gt;&lt;a id="rest_code_eacf5d88a2b64350a6ab5939efc9399e-1" name="rest_code_eacf5d88a2b64350a6ab5939efc9399e-1" href="https://www.pentagrid.ch/de/blog/ikea-dirigera-security-misconfiguration-web-server-exposes-root-filesystem/#rest_code_eacf5d88a2b64350a6ab5939efc9399e-1"&gt;&lt;/a&gt;I:/usr/share/common-licenses/license_summary.txt
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;cite&gt;/usr/share/common-licenses/license_summary.txt&lt;/cite&gt; includes all the licensing information of the software running on the DIRIGERA hub. This file is the only content that is intended to be accessible via the web endpoint.&lt;/p&gt;
&lt;p&gt;Yet, if an unauthroized user visits the endpoint and appends any file system path to the base URL, the webserver returns the file contents or starts a file download, e.g.:&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;p&gt;&lt;a class="reference external" href="http://dirigera.example.local:8082/usr/share/config/platform/data/settings.json"&gt;http://dirigera.example.local:8082/usr/share/config/platform/data/settings.json&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a class="reference external" href="http://dirigera.example.local:8082/opt/nexus/bin/chipd"&gt;http://dirigera.example.local:8082/opt/nexus/bin/chipd&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a class="reference external" href="http://dirigera.example.local:8082/usr/lib/libicudata.so.71.1"&gt;http://dirigera.example.local:8082/usr/lib/libicudata.so.71.1&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a class="reference external" href="http://dirigera.example.local:8082/bin/ls"&gt;http://dirigera.example.local:8082/bin/ls&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a class="reference external" href="http://dirigera.example.local:8082/boot/m4-firmware"&gt;http://dirigera.example.local:8082/boot/m4-firmware&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;cite&gt;dirigera.example.local&lt;/cite&gt; is here the hostname of the DIRIGERA hub.&lt;/p&gt;
&lt;p&gt;The webserver serves these additional files due to a non-specified home directory in a busybox httpd service. The &lt;cite&gt;httpd&lt;/cite&gt; call inside the systemd service does not specify the &lt;cite&gt;-h&lt;/cite&gt; parameter (home/server root directory). Further, the configuration file &lt;cite&gt;/usr/share/common-licenses/httpd.conf&lt;/cite&gt; only specifies the index file via tag &lt;cite&gt;I:&lt;/cite&gt; but also does not specifiy the home directory using the tag &lt;cite&gt;H:&lt;/cite&gt; (called server root in the &lt;a class="reference external" href="https://github.com/mirror/busybox/blob/371fe9f71d445d18be28c82a2a6d82115c8af19d/networking/httpd.c#L41"&gt;configuration file&lt;/a&gt;). As a result, the webserver defaults to the current directory as the root directory of the webserver which is also the root directory of the entire file system (&lt;cite&gt;/&lt;/cite&gt;).&lt;/p&gt;
&lt;p&gt;All accessible files return status code 200. To identify existing folders they must be called without the tailing &lt;cite&gt;/&lt;/cite&gt;, e.g. send GET request to &lt;a class="reference external" href="http://dirigera.example.local:8082/usr/share/persist/tee"&gt;http://dirigera.example.local:8082/usr/share/persist/tee&lt;/a&gt; to get status code "302 Found" and a location reference to &lt;cite&gt;/usr/share/persist/tee/&lt;/cite&gt;. Directly requesting &lt;cite&gt;/usr/share/persist/tee/&lt;/cite&gt; results in status code "404 Not Found", which does not provide information to discriminate folder existence. Note, that besides the information gained from the files, attackers can gain additional information about the file system's structure by checking if a folder exists and is accessible: e.g. &lt;cite&gt;/usr/share/persist/tee/&lt;/cite&gt; is known to exist even though all files inside the folder are inaccessible.&lt;/p&gt;
&lt;p&gt;To scrape all 12788 files and directories, Pentagrid used a preconfigured wordlist based on the extracted firmware from another DIRIGERA hub. The total number of accessible entities is a lower (but confirmed) limit since crawling the licence endpoint/filesystem was done based on a non-comprehensive wordlist. The crawling wordlist included only known paths from partitions 9, 10, 11, 13, 14, 15, 16, 17, 18, and 20 of the emmc flash with partitions 15, 16/17, and 18/19 mounted under &lt;cite&gt;/usr/share/{factory, config, persist}&lt;/cite&gt;.&lt;/p&gt;
&lt;p&gt;The system tries to limit access with systemd service hardening, especially the &lt;cite&gt;InaccessiblePaths&lt;/cite&gt; setting in combination with the Linux user permissions — although this is not sufficient, it prevents further exploitation.&lt;/p&gt;
&lt;/section&gt;
&lt;section id="precondition"&gt;
&lt;h3&gt;Precondition&lt;/h3&gt;
&lt;p&gt;An attacker needs access to TCP port 8082 of the IKEA DIRIGERA smart hub. Prior knowledge of the filesystem structure is not necessary but can reduce the time required to scrape the entire contents of the filesystem. A version before the 2.934.1 release has to be installed.&lt;/p&gt;
&lt;/section&gt;
&lt;section id="recommendation"&gt;
&lt;h3&gt;Recommendation&lt;/h3&gt;
&lt;p&gt;Install firmware version 2.934.1 released on 2026-04-09 or a later one. The fix removes the license-server component from the build and the functionality has been reworked to be handled elsewhere outside of the hub.&lt;/p&gt;
&lt;p&gt;If you are using busybox httpd in a similar scenario, it is recommended to:&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;p&gt;provide a "Home directory" to httpd by via command line or configuration file.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;establish an allowlist to only expose the intended files. Beware, that busybox httpd config files are far more limited in their capabilities to restrict file access compared to their non-busybox alternative.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;apply additional systemd service hardening.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;not solely rely on systemd service denylisting with &lt;cite&gt;InaccessiblePaths&lt;/cite&gt; to administer the served content as denylisting is bad practise for access control.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/section&gt;
&lt;section id="credits"&gt;
&lt;h3&gt;Credits&lt;/h3&gt;
&lt;p&gt;This vulnerability was discovered by Yannic 'toxsos' Hemmer (Pentagrid).&lt;/p&gt;
&lt;/section&gt;
&lt;/section&gt;</description><guid>https://www.pentagrid.ch/de/blog/ikea-dirigera-security-misconfiguration-web-server-exposes-root-filesystem/</guid><pubDate>Wed, 17 Jun 2026 13:42:00 GMT</pubDate></item></channel></rss>