Introduction:

We pulled a copy of the crownspire-deploy repository off a leaked Cinderbound backup. Word is the production warden’s key for the reliquary got committed by mistake and then cleaned up before anyone noticed. The current history looks spotless. Recover what they tried to bury.

Description:

The Cinderbound backup wasn’t lying about the history looking “spotless”, the git log on main showed nothing but clean, well-documented commits. But a force-push never deletes a commit, it just moves a pointer. The old branch tip was still sitting right there in .git/ORIG_HEAD, like a warden who forgot to lock a back door: pointing straight at commit 3c8803dtemp: add reliquary.creds to debug 403 on manifest push (REVERT ME).


That commit didn’t exist in the visible history, but the object had never been garbage collected. Diffing it against the main branch made it clear it was the one divergent commit, and git show revealed the contents of reliquary.creds. The production warden’s key to the reliquary, briefly exposed and “cleaned up” without anyone actually cleaning the object database.

Investigation:

Extract the challenge:

1┌─[ballademageren@parrot][~/jutlandia/HTB_CA2026/Force_Push]  
2└──╼ $unzip chal.zip  
3Archive:  chal.zip
4
5[...]

Let’s look at the .git/ folder:

 1┌─[ballademageren@parrot][~/jutlandia/HTB_CA2026/Force_Push]  
 2└──╼ $ls -la crownspire-deploy/.git/  
 3total 28  
 4drwxr-xr-x 1 ballademageren ballademageren  158 20 jul 15:10 .  
 5drwxr-xr-x 1 ballademageren ballademageren  426 14 jul 15:21 ..  
 6-rw-r--r-- 1 ballademageren ballademageren   56 14 jul 15:12 COMMIT_EDITMSG  
 7-rw-r--r-- 1 ballademageren ballademageren  254 14 jul 15:12 config  
 8-rw-r--r-- 1 ballademageren ballademageren   73 14 jul 15:12 description  
 9-rw-r--r-- 1 ballademageren ballademageren   21 14 jul 15:12 HEAD  
10drwxr-xr-x 1 ballademageren ballademageren  556 14 jul 15:21 hooks  
11-rw-r--r-- 1 ballademageren ballademageren 4579 20 jul 15:10 index  
12drwxr-xr-x 1 ballademageren ballademageren   14 14 jul 15:21 info  
13drwxr-xr-x 1 ballademageren ballademageren   12 14 jul 16:09 lost-found  
14drwxr-xr-x 1 ballademageren ballademageren  504 14 jul 16:07 objects  
15-rw-r--r-- 1 ballademageren ballademageren   41 14 jul 15:12 ORIG_HEAD  
16drwxr-xr-x 1 ballademageren ballademageren   18 14 jul 15:21 refs  
17┌─[ballademageren@parrot][~/jutlandia/HTB_CA2026/Force_Push]  
18└──╼ $

Someone likely ran a local git reset --hard <previous commit> to remove a not so great commit from the branch, and then they probably ran git push --force to overwrite the branch with the now cleaned history. But Git automatically sets ORIG_HEAD as a backup pointer when you do a local hard reset.


1┌─[ballademageren@parrot][~/jutlandia/HTB_CA2026/Force_Push]  
2└──╼ $cat crownspire-deploy/.git/ORIG_HEAD  
33c8803d7146cd07c75325d6b555116200f2569ee  
4┌─[ballademageren@parrot][~/jutlandia/HTB_CA2026/Force_Push]  
5└──╼ $

This commit wasn’t in the git log on the main branch. But I saw it in .git/lost-found/commit/.


Let’s match the hidden commit with the visible one:

1┌─[ballademageren@parrot][~/jutlandia/HTB_CA2026/Force_Push/crownspire-deploy]  
2└──╼ $git log --oneline 3c8803d ^main  
33c8803d temp: add reliquary.creds to debug 403 on manifest push (REVERT ME)  
4┌─[ballademageren@parrot][~/jutlandia/HTB_CA2026/Force_Push/crownspire-deploy]  
5└──╼ $

The ^main exclude whats already coming from main, so the output only shows commits that is unique for 3c8803d. Which results in one commit that was different.


Let’s look at the commit:

 1┌─[ballademageren@parrot][~/jutlandia/HTB_CA2026/Force_Push/crownspire-deploy]  
 2└──╼ $git show 3c8803d  
 3commit 3c8803d7146cd07c75325d6b555116200f2569ee  
 4Author: Doran Ash <d.ash@crownspire.valyssar>  
 5Date:   Wed May 27 23:47:19 2026 +0000  
 6  
 7   temp: add reliquary.creds to debug 403 on manifest push (REVERT ME)  
 8  
 9diff --git a/reliquary.creds b/reliquary.creds  
10new file mode 100644  
11index 0000000..12b1497  
12--- /dev/null  
13+++ b/reliquary.creds  
14@@ -0,0 +1,6 @@  
15+# Crownspire reliquary -- production warden's key. DO NOT COMMIT.  
16+RELIQUARY_ENDPOINT=https://reliquary.crownspire.valyssar:9000  
17+RELIQUARY_BUCKET=crownspire-reliquary-prod  
18+AWS_ACCESS_KEY_ID=AKIACROWNSPIRE7WARD3N  
19+AWS_SECRET_ACCESS_KEY=HTB{th3_r3l1qu4ry_n3v3r_f0rg3ts}  
20+WARDEN_SIGNING_KEY=astrael-relic-sigil-2f9c  
21┌─[ballademageren@parrot][~/jutlandia/HTB_CA2026/Force_Push/crownspire-deploy]  
22└──╼ $

Awesomeness! AWS_SECRET_ACCESS_KEY=HTB{th3_r3l1qu4ry_n3v3r_f0rg3ts}


But i’m not gonna lie I was curious when I saw the extracting: crownspire-deploy/.git/lost-found/commit/3c8803d7146cd07c75325d6b555116200f2569ee line in the bottom of the output from back when i was extracting the chal and I did the git show 3c8803d by accident back there.

Completion:

force-push-completion