How to Fix “Module database cache not built yet” Error in Metasploit on Kali Linux


12 views

When working with Metasploit Framework on Kali Linux (2016.2 in this case), you might encounter this persistent warning during module searches:

msf > search samba
[!] Module database cache not built yet, using slow search

This occurs even after successfully starting PostgreSQL and verifying database connectivity:

systemctl start postgresql
msf > db_status
[*] postgresql connected to msf

The typical solution db_rebuild_cache often doesn't resolve the issue. Let's examine the underlying reasons:

msf > db_rebuild_cache
# No visible output or confirmation
msf > search samba
[!] Module database cache not built yet, using slow search

Here's what actually works to permanently fix the cache issue:

# First, exit msfconsole
msf > exit

# Then run these commands:
sudo service postgresql restart
msfdb reinit
msfconsole

# Now inside msfconsole:
msf > db_rebuild_cache
# Wait for completion (may take 2-5 minutes)
msf > search samba
# Should now show immediate results without warning

This occurs because:

  • Metasploit's module cache depends on PostgreSQL's FTS (Full Text Search) capabilities
  • The initial database schema might not include proper FTS configurations
  • msfdb reinit creates fresh database structures with proper indexing

After applying the fix, you can verify proper cache operation:

msf > time search samba
# Should return results in < 1 second
msf > time search type:exploit
# Should be nearly instantaneous

If the issue persists, try these additional steps:

# Completely reset the database:
sudo msfdb delete
sudo msfdb init

# Then rebuild all caches:
msfconsole -x "db_rebuild_cache; exit"

The "slow search" warning indicates:

  • Searches scan all module files sequentially
  • Typical slowdown of 10-50x compared to cached searches
  • Particularly noticeable with large searches (search platform:windows)

When setting up a fresh Metasploit installation on Kali Linux, you might encounter this persistent message during searches:

msf > search samba
[!] Module database cache not built yet, using slow search

Even after running db_rebuild_cache, the issue persists. Let's dive deeper into why this happens and how to properly resolve it.

First, verify your database connection status:

msf > db_status
[*] postgresql connected to msf

While this shows connectivity, it doesn't guarantee proper cache initialization. The database service might be running, but the cache tables haven't been populated.

The standard db_rebuild_cache command sometimes needs additional steps:

msf > db_disconnect
msf > db_connect -y /usr/share/metasploit-framework/config/database.yml
msf > db_rebuild_cache

This sequence ensures a fresh connection before rebuilding the cache.

If the above doesn't work, try this nuclear option:

sudo service postgresql restart
msfconsole -x "db_status; db_rebuild_cache; exit"

Then restart msfconsole normally. This often resolves stubborn cache issues.

After applying these steps, test with:

msf > search samba

The warning message should disappear, and results should appear instantly.

To avoid future cache issues:

  1. Always initialize the database properly during installation
  2. Use msfdb init when setting up Metasploit
  3. Regularly run db_rebuild_cache after major updates

Remember that cache rebuilding may take several minutes on slower systems.