5585 Total CVEs
26 Years
GitHub
README.md
Rendering markdown...
POC / fetch_binaries.py PY
#!/usr/bin/env python3
"""Download the vulnerable (0.37.3) and patched (0.37.4) PocketBase binaries
for the current OS/arch into ./bin_<version>/. Cross-platform, stdlib only."""
import os, sys, platform, zipfile, urllib.request

VERSIONS = ["0.37.3", "0.37.4"]
HERE = os.path.dirname(os.path.abspath(__file__))

def asset_os():
    s = sys.platform
    if s.startswith("win"): return "windows"
    if s == "darwin":       return "darwin"
    return "linux"

def asset_arch():
    m = platform.machine().lower()
    if m in ("x86_64", "amd64"): return "amd64"
    if m in ("arm64", "aarch64"): return "arm64"
    return "amd64"

def main():
    o, a = asset_os(), asset_arch()
    for v in VERSIONS:
        name = f"pocketbase_{v}_{o}_{a}.zip"
        url = f"https://github.com/pocketbase/pocketbase/releases/download/v{v}/{name}"
        zip_path = os.path.join(HERE, f"pb_{v}.zip")
        out_dir = os.path.join(HERE, f"bin_{v}")
        print(f"[*] {v}: downloading {url}")
        urllib.request.urlretrieve(url, zip_path)
        with zipfile.ZipFile(zip_path) as z:
            z.extractall(out_dir)
        exe = os.path.join(out_dir, "pocketbase.exe" if o == "windows" else "pocketbase")
        if o != "windows":
            os.chmod(exe, 0o755)
        os.remove(zip_path)
        print(f"[+] {v}: ready at {exe}")

if __name__ == "__main__":
    main()