Skip to content
Pedro Mora
Go back

HTB Redeemer — Reading an Agent's Memory

Part of the OSAI Prep series → — HTB writeups mapped to OWASP LLM Top 10.

Machine Summary

FieldValue
PlatformHackTheBox
DifficultyVery Easy
OSLinux
VulnerabilityRedis with no authentication
OWASP MappingA05 — Security Misconfiguration

Reconnaissance

Initial port scan:

nmap -sC -sV -oN nmap.txt 10.129.136.187

The scan reveals Redis running on port 6379. Redis is an in-memory key-value store most commonly used for caching, session management, and message queuing. In production it should require authentication. Here, it doesn’t.

nmap scan showing Redis on port 6379 with no authentication

We connect directly using the Redis CLI:

redis-cli -h 10.129.136.187

No password prompt. We’re at the Redis command line with full access. We confirm the version:

Redis CLI connected, running version 5.0.7

We enumerate what’s stored:

INFO keyspace

INFO keyspace showing 4 keys in the database

Four keys in the keyspace. We retrieve all key names:

KEYS *

Returns: Numb, Temp, Stor, Flag. We extract the flag:

GET Flag

GET Flag returning the flag value directly

Done. Unauthenticated access to the store gave us everything — no exploitation, no escalation, just enumeration.

Privilege Escalation

Not required. Direct Redis access was sufficient.

Root Cause

Redis 5.0.7 running on port 6379 with no requirepass directive. Any client that can reach the port gets full read/write access — no username, no password, no authentication of any kind. Default configuration, never hardened.

The AI Equivalent

OWASP LLM Top 10 Mapping: LLM06 — Sensitive Information Disclosure (secondary risk: LLM01 — Prompt Injection via agent memory)

Redis is one of the most common backing stores for LLM agent systems — it holds conversation history, retrieved document chunks, tool call results, and session state between turns. An unauthenticated Redis instance in an agentic deployment doesn’t just leak cached data; it exposes the agent’s entire working memory.

The four keys on Redeemer — Numb, Temp, Stor, Flag — map directly to what you’d find in a production agent’s Redis store: a session token, a temporary scratchpad, a retrieved document, and a sensitive output. Running KEYS * and GET gives an attacker the same information the agent has, in real time.

The secondary risk is more serious: with write access, the attacker can inject false context into active sessions. The agent reads its Redis memory on the next turn and acts on data the attacker planted. That’s LLM01 — prompt injection — but executed through the memory layer rather than the input layer, which means most prompt injection defenses don’t catch it. You’re not manipulating the prompt; you’re manipulating what the agent remembers.

This is the attack surface that gets missed in AI security reviews. Teams audit the model inputs, the system prompt, the tool definitions. Nobody checks whether the Redis instance backing the agent’s memory is sitting open on port 6379.

Lessons Learned


Share this post on:

Previous Post
HTB Dancing — When the File Share Has No Lock
Next Post
HTB Fawn — The FTP Door Left Open