heap-exploitation
25pwnable.twFood Store
Con trỏ next trỏ đến Recipe tiếp theo ko đc init khi tạo Recipe mới, có thể bị lợi dụng để trỏ về chunk đã free, dẫn đến UAF, tạo chunk overlap.
pwnable.twBreak Out
Không xoá reference sau khi free, gây UAF và chunk overlap; Không kiểm tra con trỏ next trỏ đến object hợp lệ trong linked list.
pwnable.twGhost Party
Vi phạm Rule Of Three trong C++ do thiếu copy constructor, gây double free sau khi pass by value; Gán raw pointer vào thành viên class, pointer được free ngay khi out of scope, gây UAF.
pwnable.twBounty Program β
Không kiểm tra NULL trước khi sử dụng strtok().
pwnable.twBounty Program α
Không kiểm tra NULL trước khi sử dụng strtok().
pwnable.twRe-alloc Revenge
Chương trình không kiểm tra cẩn thận sau khi sử dụng realloc, cho phép kẻ tấn công thực hiện use-after-free.
pwnable.twCAOV
Chương trình C++ vi phạm cơ chế return by value của SYSV ABI, dẫn đến lời gọi destructor trên dữ liệu trên stack trước đó được attacker kiểm soát.
pwnable.twHeap Paradise
pwnable.twBookWriter
Off-by-one error cho phép attacker ghi out-of-bound vào kích thước của page, dẫn đến buffer overflow tuỳ ý trên heap khi chỉnh sửa page content.
pwnable.twSecret Of My Heart
Chương trình đặt null byte sau input của user không cẩn thận, gây 1 null byte overflow, ghi đè vào size của chunk liền sau, attacker có thể gây chunks overlap từ đó.
pwnable.twSecret Garden
pwnable.twSpirited Away
Chương trình sử dụng sprintf() cho ra chuỗi kết quả vượt quá kích thước buffer, gây buffer overflow ghi đè vào len, tiếp tục gây buffer overflow ở các buffer khác.
pwnable.twRe-alloc
Chương trình không kiểm tra cẩn thận sau khi sử dụng realloc, cho phép kẻ tấn công thực hiện use-after-free.
pwnable.twhacknote
0xL4ugh CTF V5Alice
Vẫn giữ reference sau khi free, dẫn đến use-after-free.
BtS 2025HexDumper
Chương trình tin rằng count > 0 khi dùng Duff's device để copy dữ liệu, nhưng attacker có thể đưa count = 0 qua input không được validate, dẫn đến buffer overflow 8 byte trên heap.
WannaGame Championship 2025oop
Chương trình tin rằng việc Person trong Note được copy tạo ra một object độc lập, tuy nhiên trên thực tế, shallow copy được thực hiện, dẫn đến có 2 Person object cùng có description trỏ đến một vùng nhớ -> use-after-free.
VCS Passport 2025pwn
Chương trình cho rằng buffer cần ghi có độ dài 256 bytes, nhưng trên thực tế trước đó buffer có thể được cấp phát ít hơn 256 bytes, dẫn đến heap buffer overflow.
VCS Passport 2024PWN2
Chương trình tin rằng chỉ cần node tại index không phải null thì có nghĩa là hợp lệ, tuy nhiên trên thực tế attacker có thể free node mà không set null, dẫn đến use-after-free.
CSCV 2025 Jeopardy FinalCalc
Chương trình tin rằng sau khi gặp lỗi và throw exception chia cho 0, Expr con đều đã được cleanup và không còn reference, tuy nhiên tại exception handler, không có code cleanup khiến Expr cha vẫn giữ reference đến Expr con, dẫn dến double-free khi gặp lỗi lần sau.
HTB Cyber Apocalypse CTF 2025: Tales from EldoriaStrategist
Chương trình tin rằng dữ liệu được ghi vào sẽ không vượt quá kích thước chunk được cấp phát, nhưng trên thực tế kích thước overflow dẫn đến ghi đè vào size của chunk sau do sử dụng strlen().
ASCIS Final 2024BugBounty
Chương trình tin rằng messages[index] luôn trỏ tới buffer còn sống, nhưng attacker có thể free rồi dùng lại qua cùng index do không set con trỏ về null, dẫn dến use-after-free.
picoCTF 2023Horsetrack
use after free - dangling pointer.
picoCTF 2024high frequency troubles
house of orange + heap buffer overflow - improper length check in gets().