Skip to content

Instantly share code, notes, and snippets.

View spynika's full-sized avatar
😶
I may be slow to respond.

bjorkon spynika

😶
I may be slow to respond.
View GitHub Profile
import requests
import os
import time
import sys
from datetime import datetime
from typing import List, Dict, Optional
class GitHubRepoDownloader:
"""
Download semua repository dari akun GitHub dengan handling pagination dan rate limit
/* SPDX-License-Identifier: LGPL-2.1-or-later OR MIT */
/*
* Copy Fail -- CVE-2026-31431
* Vulnerability checker.
*
* Detects whether the running kernel is susceptible to the AF_ALG/splice
* page-cache mutation primitive used by exploit.c and exploit-passwd.c,
* without touching any system file. Creates a local "testfile" in the
* working directory containing the string "init", then runs the same
* patch_chunk() primitive against its page cache to attempt to overwrite
/* SPDX-License-Identifier: LGPL-2.1-or-later OR MIT */
/*
* Copy Fail (CVE-2026-31431) -- payload.
*
* Cross-platform C payload by Tony Gies <tony.gies@crashunited.com>.
*
* Cross-platform shellcode, built against the kernel's nolibc/ tiny libc.
* payload.c is plain portable C; the per-arch syscall asm lives in
* nolibc/arch-*.h. Supported architectures (per nolibc upstream): x86_64,
* i386, arm, aarch64, riscv32/64, mips, ppc, s390x, loongarch, m68k, sh,
/* SPDX-License-Identifier: LGPL-2.1-or-later OR MIT */
/*
* Copy Fail -- CVE-2026-31431 -- /etc/passwd UID-flip variant.
*
* Mutates /etc/passwd's page cache to set the running user's UID field
* to "0000", then execs `su <user>`. PAM authenticates against
* /etc/shadow (untouched) using the user's real password; on success,
* su's setuid() reads the corrupted /etc/passwd from the page cache and
* lands in a root shell.
*
/* SPDX-License-Identifier: LGPL-2.1-or-later OR MIT */
/*
* Copy Fail -- CVE-2026-31431
* AF_ALG + splice() page-cache-mutation LPE proof-of-concept.
*
* Cross-platform C proof-of-concept by Tony Gies <tony.gies@crashunited.com>.
*
* Disclosed 2026-04-29 by Theori / Xint. Canonical writeup: https://copy.fail/
*
* Mechanism:
#define _CRT_SECURE_NO_WARNINGS
#include <Windows.h>
#include <stdio.h>
#include <winternl.h>
#include <ntstatus.h>
#include <conio.h>
#include <objbase.h>
#pragma comment(lib,"ntdll.lib")
HANDLE* gHandleTracker = NULL;
// It gets funnier as time passes...
#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <Windows.h>
#include <conio.h>
#include <winternl.h>
#include <ntstatus.h>
#define _GNU_SOURCE
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stdint.h>
#include <unistd.h>
#include <fcntl.h>
#include <errno.h>
#include <sched.h>
#include <signal.h>
#define _GNU_SOURCE
#include <errno.h>
#include <fcntl.h>
#include <sched.h>
#include <signal.h>
#include <stdarg.h>
#include <stdint.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
/*
* rxgk pagecache write — PoC for missing COW guard in rxgk_decrypt_skb()
*
* net/rxrpc/rxgk_common.h: rxgk_decrypt_skb() does skb_to_sgvec() then
* crypto_krb5_decrypt() with no skb_cow_data(). The krb5enc AEAD template
* (crypto/krb5enc.c) decrypts in-place BEFORE verifying the HMAC. When skb
* frag pages are pagecache pages (via splice → MSG_SPLICE_PAGES → loopback),
* the in-place decrypt corrupts the page cache.
*
* The same pattern exists in rxkad (rxkad_verify_packet_2).