<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:media="http://search.yahoo.com/mrss/"><channel><title><![CDATA[MongoBD - Shodan Blog]]></title><description><![CDATA[The latest news and developments for Shodan.]]></description><link>https://blog.shodan.io/</link><generator>Ghost 0.7</generator><lastBuildDate>Fri, 10 Apr 2026 01:16:59 GMT</lastBuildDate><atom:link href="https://blog.shodan.io/tag/mongobd/rss/" rel="self" type="application/rss+xml"/><ttl>60</ttl><item><title><![CDATA[It's Still the Data, Stupid!]]></title><description><![CDATA[<p>In light of the recent incident of <a href="https://krebsonsecurity.com/2015/12/13-million-mackeeper-users-exposed/">MacKeeper exposing 13 million accounts</a> through a public, unauthenticated MongoDB instances I wanted to quickly revisit my <a href="https://blog.shodan.io/its-the-data-stupid/">earlier blog post</a> on the subject.</p>

<p>At the moment, there are at least <a href="https://www.shodan.io/report/nlrw9g59">35,000 publicly available, unauthenticated instances of MongoDB</a> running on the Internet. This</p>]]></description><link>https://blog.shodan.io/its-still-the-data-stupid/</link><guid isPermaLink="false">2143defc-cf08-4c17-8532-ec7fdf0b4012</guid><category><![CDATA[research]]></category><category><![CDATA[MongoBD]]></category><category><![CDATA[NoSQL]]></category><category><![CDATA[Cassandra]]></category><category><![CDATA[Riak]]></category><category><![CDATA[Redis]]></category><category><![CDATA[CouchDB]]></category><dc:creator><![CDATA[John Matherly]]></dc:creator><pubDate>Tue, 15 Dec 2015 07:30:59 GMT</pubDate><media:content url="http://blog.shodan.io/content/images/2015/12/Library-with-a-book-ladde-014.jpg" medium="image"/><content:encoded><![CDATA[<img src="http://blog.shodan.io/content/images/2015/12/Library-with-a-book-ladde-014.jpg" alt="It's Still the Data, Stupid!"><p>In light of the recent incident of <a href="https://krebsonsecurity.com/2015/12/13-million-mackeeper-users-exposed/">MacKeeper exposing 13 million accounts</a> through a public, unauthenticated MongoDB instances I wanted to quickly revisit my <a href="https://blog.shodan.io/its-the-data-stupid/">earlier blog post</a> on the subject.</p>

<p>At the moment, there are at least <a href="https://www.shodan.io/report/nlrw9g59">35,000 publicly available, unauthenticated instances of MongoDB</a> running on the Internet. This is an increase of >5,000 instances since the last article. They're hosted mostly on Amazon, Digital Ocean and Aliyun (cloud computing by Alibaba):</p>

<p><img src="https://blog.shodan.io/content/images/2015/12/Firefox_Screenshot_2015-12-15T07-29-58-196Z.png" alt="It's Still the Data, Stupid!"></p>

<p>The most popular versions of MongoDB are:</p>

<ol>
<li><strong>3.0.7</strong>: 3,010  </li>
<li><strong>2.4.9</strong>: 2,624  </li>
<li><strong>2.4.14</strong>: 2,535  </li>
<li><strong>2.4.10</strong>: 1,879  </li>
<li><strong>3.0.6</strong>: 1,256</li>
</ol>

<p>By default, newer versions of MongoDB only listen on localhost. The fact that MongoDB 3.0 is well-represented means that a lot of people are changing the default configuration of MongoDB to something less secure and aren't enabling any firewall to protect their database. In the previous article, it looked like the misconfiguration problem might solve itself due to the new defaults that MongoDB started shipping with; that doesn't appear to be the case based on the new information. It could be that users are upgrading their instances but using their existing, insecure configuration files.</p>

<p>In terms of data volume, all of the exposed databases combined account for <strong>684.8 TB of data</strong>. And the most popular database names are:</p>

<ol>
<li><strong>local</strong>: 33,947  </li>
<li><strong>admin</strong>: 23,970  </li>
<li><strong>db</strong>: 8,638  </li>
<li><strong>test</strong>: 6,761  </li>
<li><strong>config</strong>: 859  </li>
<li><strong>test1</strong>: 612  </li>
<li><strong>mydb</strong>: 549  </li>
<li><strong>DrugSupervise</strong>: 382  </li>
<li><strong>Video</strong>: 376  </li>
<li><strong>mean-dev</strong>: 252</li>
</ol>

<p>The database names are mostly the same as before, with the exception of: DrugSupervise and mean-dev. Notably absent is <strong>hackedDB</strong> which was at #8 last time.</p>

<p>Finally, I can't stress enough that this problem is not unique to MongoDB: <a href="https://www.shodan.io/search?query=product%3Aredis">Redis</a>, <a href="https://www.shodan.io/search?query=product%3Acouchdb">CouchDB</a>, <a href="https://www.shodan.io/search?query=product%3Acassandra">Cassandra</a> and <a href="https://www.shodan.io/search?query=port%3A8098+mochiweb">Riak</a> are equally impacted by these sorts of misconfigurations.</p>]]></content:encoded></item><item><title><![CDATA[It's the Data, Stupid!]]></title><description><![CDATA[<p>I would like to take a moment to discuss databases. Most people use Shodan to find devices that have web servers, but for a few years now I've also been crawling the Internet for various database software. I usually mention this during my talks and I've tried to raise awareness</p>]]></description><link>https://blog.shodan.io/its-the-data-stupid/</link><guid isPermaLink="false">a8294ab0-9195-498b-b97f-62dd4b59aec4</guid><category><![CDATA[research]]></category><category><![CDATA[MongoBD]]></category><category><![CDATA[NoSQL]]></category><dc:creator><![CDATA[John Matherly]]></dc:creator><pubDate>Sat, 18 Jul 2015 21:51:42 GMT</pubDate><media:content url="http://blog.shodan.io/content/images/2015/07/Library-with-a-book-ladde-014.jpg" medium="image"/><content:encoded><![CDATA[<img src="http://blog.shodan.io/content/images/2015/07/Library-with-a-book-ladde-014.jpg" alt="It's the Data, Stupid!"><p>I would like to take a moment to discuss databases. Most people use Shodan to find devices that have web servers, but for a few years now I've also been crawling the Internet for various database software. I usually mention this during my talks and I've tried to raise awareness of it over the years with mixed results. At least with <a href="https://www.shodan.io/search?query=product%3A%22MySQL%22">MySQL</a>, <a href="https://www.shodan.io/search?query=port%3A5432">PostgreSQL</a> and much of the relational database software the defaults are fairly secure: listen on the local interface only and provide some form of authorization by default. This isn't the case with some of the newer NoSQL products that started entering mainstream fairly recently. For the purpose of this article I will talk about one of the more popular NoSQL products called <a href="https://www.mongodb.com">MongoDB</a>, though much of what is being said also applies to other software (I'm looking at you <a href="https://www.shodan.io/search?query=product%3A%22Redis+key-value+store%22">Redis</a>).</p>

<p><em>Note: This article isn't about the way MongoDB scales.</em></p>

<p>Firstly, in an effort to make it a bit easier to understand the results for MongoDB I've updated the way they're <a href="https://www.shodan.io/search?query=product%3A%22MongoDB%22">represented in the search results</a>:</p>

<p><img src="https://blog.shodan.io/content/images/2015/07/mongodb-results.png" alt="It's the Data, Stupid!"></p>

<p>A quick <a href="https://www.shodan.io/report/OID7V1zw">search for MongoDB</a> reveals that there are nearly 30,000 instances on the Internet that don't have any authorization enabled. This was actually a bit surprising since by default MongoDB listens on localhost and has done so for a while based on the <a href="https://github.com/mongodb/mongo/blob/e01dfe96c73e89fb5e20f55faff4fcbfb54de1b5/debian/mongod.conf">oldest Github checkin for their mongodb.conf</a>. This made my results very confusing: how could there be so many open MongoDB installations if the defaults were to listen on localhost?</p>

<h5 id="configurationhistory">Configuration History</h5>

<p>So I started downloading older versions of MongoDB to figure out when they changed the configuration defaults. It turns out that <a href="https://fastdl.mongodb.org/src/mongodb-src-r2.4.14.tar.gz">MongoDB version 2.4.14</a> seems to be the last version that still listened to 0.0.0.0 by default, which looks like a maintenance release done on April 28, 2015. I'm a bit confused why a configuration file was checked-in to Github September 2013 that listened on localhost by default, but then they kept distributing versions that didn't include that change?! I dug around some more and eventually found the official issue in Jira that tracked this configuration issue:</p>

<p><a href="https://jira.mongodb.org/browse/SERVER-4216">https://jira.mongodb.org/browse/SERVER-4216</a></p>

<p>Roman Shtylman actually raised this problem back in February of 2012! It ended up taking a bit more than 2 years to change the settings. Based on the distribution of versions I'm seeing, my guess is that early versions of 2.6 might've also lacked binding to localhost:</p>

<p><img src="https://blog.shodan.io/content/images/2015/07/mongodb-versions.png" alt="It's the Data, Stupid!"></p>

<p>The lack of secure defaults explained some of the 30,000 results but just looking at the data made something else obvious.</p>

<h5 id="thecloud">The Cloud</h5>

<p><img src="https://blog.shodan.io/content/images/2015/07/mongodb-orgs.png" alt="It's the Data, Stupid!"></p>

<p>The vast majority of public MongoDB instances are operating in a cloud: Digital Ocean, Amazon, Linode and OVH round out the most popular destinations for hosting MongoDB without authorization enabled. I've actually observed this trend across the board: cloud instances tend to be more vulnerable than the traditional datacenter hosting. My guess is that cloud images don't get updated as often, which translates into people deploying old and insecure versions of software.</p>

<h5 id="problemscope">Problem Scope</h5>

<p>There's a total of <strong>595.2 TB of data</strong> exposed on the Internet via publicly accessible MongoDB instances that don't have any form of authentication. To determine the scale of the problem I downloaded the data using the <a href="https://cli.shodan.io">Shodan command-line tool</a>:</p>

<pre><code>shodan download --limit -1 mongodb "product:MongoDB"
</code></pre>

<p>And then I ran a small Python script to aggregate the total size of all exposed databases. I also looked at which database names were most popular:</p>

<ol>
<li><strong>local</strong>: 27,108  </li>
<li><strong>admin</strong>: 22,286  </li>
<li><strong>db</strong>: 9,895  </li>
<li><strong>test</strong>: 6,818  </li>
<li><strong>config</strong>: 1,119  </li>
<li><strong>mydb</strong>: 498  </li>
<li><strong>Video</strong>: 409  </li>
<li><strong>hackedDB</strong>: 319  </li>
<li><strong>storage</strong>: 315  </li>
<li><strong>trash</strong>: 309</li>
</ol>

<p>Faceting on the database name reveals widespread installations that might've been misconfigured or otherwise exposed. There are a lot of instances that have some sort of administrative database, so the app that uses MongoDB probably has authentication but the database itself doesn't... The name that really sticks out is <strong>hackedDB</strong>. It's unclear whether those instances have been compromised or whether it's a large deployment of MongoDB servers from a company that uses "hackedDB" as its database name. Or maybe it's a honeypot? The interesting thing to note when <a href="https://www.shodan.io/search?query=product%3A%22MongoDB%22+hackeddb">looking at the results</a> is that 40% of the instances are running a very old version of MongoDB (1.8.1).</p>

<p>I could go on and on about these sorts of problems because they're everywhere and haven't been resolved for years. Hopefully, more people will start looking at services that are responsible for the actual data and not solely focus on the web interfaces.</p>]]></content:encoded></item></channel></rss>