berkoc
EN DE TR
contact

AI × Systems Security

From the prompt through the pipeline to the kernel.

I build AI systems and secure every layer they stand on: RAG, LLM and MCP pipelines at the top, the Linux kernel at the bottom. 6 CVEs, Linux kernel patches shipped in mainline with stable backports, and 12 findings across the MCP ecosystem.

Berkant Koc · portrait
Berkant KocRavensburg
6
CVEs assigned
03
kernel contributions
12
MCP ecosystem findings
5.15→7.0
stable series with my patches

/ 00 · Mainline

Merged into mainline.

drm/hyperv, Linux kernel. Backported to the stable trees 5.15 through 7.0, Reviewed-by: Michael Kelley.

Subject
drm/hyperv: validate VMBus packet size in receive callback
Trailers
Reviewed-by: Michael Kelley
Tested-by: Michael Kelley
Fixes
76c56a5affeb ("drm/hyperv: Add DRM driver for hyperv synthetic video device")
Cc
stable@vger.kernel.org # 5.14+
Stable
5.15.y · 6.1.y · 6.6.y · 6.12.y · 6.18.y · 7.0.y
drivers/gpu/drm/hyperv/hyperv_drm_proto.cpatch 2/2
hdr_size = sizeof(struct pipe_msg_hdr) +           sizeof(struct synthvid_msg_hdr);if (bytes_recvd < hdr_size) {        drm_err_ratelimited(&hv->dev,                            "synthvid packet too small for header: %u\n",                            bytes_recvd);        return;}
/ 01 · Specimens

Real tools.
Real evidence.

No renders, no stock. Every specimen is my own published work — kernel patches, CVEs, hardened mail. Verify each on lore.kernel.org and cve.org.

Linux Kernel · drm/qxlspecimen 00
[PATCH] validate dst_offset in apply_reloc against BO size
// qxl_ioctl.c · apply_reloc() · dst_offset user-set*(u64*)(reloc_page + (info->dst_offset & ~PAGE_MASK)) = reloc->dst;+ if (dst_offset > U32_MAX - sizeof(u64) ||+ dst_offset + sizeof(u64) >+ dst_bo->tbo.base.size)+ return -EINVAL;
CWE-787 · OOB write CVSS 5.5 guest → host priming
Assigned CVEspecimen 01
CVE-2026-46435
smob · prototype pollution
reporter: berkant-koc · scoped PoC
Merged · Reviewedspecimen 02
drm/hyperv: validate VMBus packet size in receive
✓ Reviewed-by: Michael Kelley · merged mainline
Mail · Transportspecimen 03
DMARC
p=quarantine · rua set
MTA-STS
enforced · id 20260511
DKIM
selector=me · RSA/sha256
DNSSEC
Ed25519 · alg 15
verifiable · not generated
lore.kernel.org · cve.org · dig berkoc.com

Research.

Coordinated disclosure with maintainers, MITRE, RustSec, and the Linux kernel list. Every advisory below verifiable on a public ledger: CVE record, GHSA permalink, RustSec PR, or lore.kernel.org thread.

2026-05-16 · in triage / wasm · bytecode alliance

GHSA-7ffc-wfjw-r6rv · WAMR Memory64 wraparound

Reported to the Bytecode Alliance security contact and, at their request, filed as a private GitHub security advisory. In maintainer triage since May 2026, no CVE assigned yet. Technical details stay private until a fix ships, per coordinated disclosure.

  • CWE-190
  • CWE-787
  • CWE-125
  • CVSS 9.3 Critical
  • Scope Changed
2026-05-14 · submitted / linux kernel

drm/qxl · validate dst_offset in apply_reloc

Out-of-bounds write in drivers/gpu/drm/qxl/qxl_ioctl.c: apply_reloc and apply_surf_reloc wrote a user-controlled dst_offset without bounds-checking against the BO size. 13-year-old aspirational comment from v3.10 ("dst must be validated") never implemented. Guest-local OOB-write in QXL VRAM, plausible priming primitive for guest-to-host escape. Format-correction guided by Willy Tarreau. Waiting on maintainer Gerd Hoffmann ACK.

drm/qxl: validate dst_offset · patch excerpt
/*
 * dst must be validated, i.e. whole bo on vram/surfacesram.
 * Refuse offsets that would write past the end of the BO,
 * or where dst_offset + write_size would overflow uint32_t.
 */
+if (reloc_info[i].type == QXL_RELOC_TYPE_BO &&
+    (reloc_info[i].dst_offset > U32_MAX - sizeof(uint64_t) ||
+     reloc_info[i].dst_offset + sizeof(uint64_t) >
+     reloc_info[i].dst_bo->tbo.base.size)) {
+        ret = -EINVAL;
+        goto out_free_bos;
+}
+if (reloc_info[i].type == QXL_RELOC_TYPE_SURF &&
+    (reloc_info[i].dst_offset > U32_MAX - sizeof(uint32_t) ||
+     reloc_info[i].dst_offset + sizeof(uint32_t) >
+     reloc_info[i].dst_bo->tbo.base.size)) {
+        ret = -EINVAL;
+        goto out_free_bos;
+}
full patch on LKML →
LKML submission · mail header
From:    Berkant Koc <me@berkoc.com>
To:      Gerd Hoffmann <kraxel@redhat.com>,
         Dave Airlie <airlied@redhat.com>
Cc:      virtualization@lists.linux.dev,
         dri-devel@lists.freedesktop.org,
         spice-devel@lists.freedesktop.org
Subject: [PATCH] drm/qxl: validate dst_offset in apply_reloc
         against BO size
Date:    Wed, 14 May 2026 12:07:40 +0200 (CEST)
view thread on lore.kernel.org →
  • CWE-787
  • QEMU / QXL
  • Sign-off submitted
2026-05-18 · CVE issued, GHSA published / rust crate

CVE-2026-46690 · unbounded-spsc Sender::send transmute

Unsound mem::transmute in Sender::send on the unbounded-spsc Rust crate. Coordinated with maintainer Shane Pearman; GHSA published 2026-05-18, CVE-2026-46690 issued by GitHub CNA same day. Adjacent oneringbuf finding merged in RustSec PR #2883 after upstream-fix-first etiquette.

  • Memory Safety
  • Unsound Transmute
  • Rust crates.io
2026-05-19 · CVE issued, advisory accepted / rust crate

CVE-2026-47425 · conda/rattler entry-point path traversal

EntryPoint::FromStr in rattler_conda_types trims but does not sanitize the entry-point name, so a malicious noarch:python package can write executables outside the install prefix (arbitrary file write). Coordinated with maintainer Bas Zalmstra; advisory GHSA-q53q-5r4j-5729 accepted 2026-05-19, CVE-2026-47425 issued by GitHub CNA the same day.

  • CWE-22
  • Path Traversal
  • Rust crates.io
2026-05 · ongoing / disclosure pipeline

Maintainer triage queue

Advisories from the 2026-05-14 disclosure sprint sitting in maintainer triage windows. Includes youki readonly_paths bypass (Toru Komatsu, PoC ETA), oneringbuf Box-drop (RustSec PR #2883 merged via dirkjan), and submissions to SGLang, LightLLM, LMDeploy, OpenHands, Outline, ESPHome, conda, rattler, PDM. For the up-to-date list, see the live ledger.

  • 2026-05-14 disclosure sprint
  • vendor-mail trail
  • RustSec PRs
  • GPG-signed

Story arc.

  1. Feb 2026–present

    Independent Security Researcher

    CVP-approved · coordinated disclosure

    Vulnerability research and coordinated disclosure across npm, Rust crates.io, the Bytecode Alliance WebAssembly runtime, and the Linux kernel. Full advisory list with public-ledger links in the Research section.

    • Kernel Linux kernel: drm/hyperv host-message-parsing hardening merged to mainline and backported to stable by Greg KH and Sasha Levin. drm/qxl dst_offset bounds-check on a 13-year-old aspirational TODO, format-corrected with Willy Tarreau, awaiting Gerd Hoffmann ACK. Teardown-race report in fuse/io_uring credited in the maintainer's v3 fix series.
    • CVP Cyber Verification Program approval from Anthropic (May 2026). Dual-use security tooling unblocked under the legitimate-defensive-purpose tier.
  2. Sep 2026–present

    M.Sc. Advanced IT Security

    Albstadt-Sigmaringen University
  3. 2026–present

    Seasonal Team, Shop

    Ravensburger Spieleland · Meckenbeuren, DE

    Back for the 2026 season.

  4. Apr–Jul 2026

    Teaching Assistant, Software Engineering

    RWU Ravensburg-Weingarten

    Code reviews on Java assignments (JUnit · State Pattern · Dependency Injection · Maven). Individual feedback to students, in-person support during lab sessions. Guidance through the Scrum project phase with Git, Jenkins, Redmine.

  5. Jun–Jul 2026

    Working Student, Software Development & Data

    Tri.Merge GmbH · Friedrichshafen, DE

    Working student with research tasks in software development and data science at an AI and data-engineering consultancy on Lake Constance. Regulatory and market research, delivered as written research documentation.

  6. Sep 2025–Mar 2026

    Intern, Sales / Key Account Management

    AUMOVIO (Continental Automotive spin-off) · Lindau, DE

    Sales role, not engineering. Used AI tools to cut analysis tasks from several weeks to a few hours. Built a SharePoint hub as the sales team's central entry point and brought scattered data into one place. Kept the critical parts list weekly during a semiconductor shortage and spotted a delivery discrepancy early enough for a timely escalation. Side initiative: concept for an automated sales assistant with the natural language processing department, and an exchange between sales and development.

  7. Oct 2022–Sep 2026

    B.Sc. Information Systems

    RWU Ravensburg-Weingarten · completed

    Software Engineering · Java · SQL · Cloud · IoT. Bachelor thesis in IT-security research.

  8. 2018–2024

    Ravensburger Spieleland

    Seasonal team lead · Meckenbeuren, DE

    Six seasons across Animation, Events, Retail, and Logistics. Seasonal team lead during peak-traffic weekends and school holidays: shift planning, on-the-floor problem-solving, customer-facing.

2025-26 · AUMOVIO / change request

Change Request Template · cost+time calculation

Template for change requests with built-in calculations for cost and time impact, plus a systematic comparison of general terms and conditions in quoting for new business.

  • Process Automation
  • Quoting
2025-26 · AUMOVIO / crisis management

Critical Parts List · semiconductor shortage

Weekly upkeep of the critical parts list during a semiconductor shortage, the steering tool for cross-department crisis management: data consolidated from different sources, coverage calculated with a traffic-light logic. Spotted a delivery discrepancy early enough for a timely escalation.

  • Supply Chain
  • Data Consolidation
  • Crisis Management

Built, secured, automated.

2026 · live / this

berkoc.com

This site. Vanilla TypeScript + Vite + GSAP + Lenis. No framework. Canvas 2D signal field, custom type system.

  • TypeScript
  • GSAP
  • Lenis
  • Vite
2026 · live / family

Koc-Konstruktionen

Astro static site plus a full mail-stack hardening for four domains. MTA-STS enforce, strict CAA, DNSSEC EdDSA.

  • Astro
  • Mail Security
  • DKIM
  • MTA-STS
2026 · ongoing / mail-stack

Mail-hardening stack

DKIM RSA-2048 · SPF strict · MTA-STS enforce · strict CAA · DNSSEC EdDSA. Live on four domains.

  • DKIM
  • MTA-STS
  • DNSSEC
2025-26 / aumovio · side initiative

Automated sales assistant · concept

A side initiative during a sales internship: concept for an automated sales assistant, including requirements analysis and alignment with the natural language processing department. Also identified the company-wide AI contact person and started an exchange between sales and development.

  • AI Concept
  • Requirements
  • NLP

Don't trust me. Verify.

Public scanners run reproducible tests on berkoc.com: click any badge for a fresh run, not a cached snapshot.

Precision secure-element chip on dark glass
Secure element. Every claim on this page is signed and checkable.
  1. / web headers

    Mozilla Observatory

    CSP, HSTS, X-Frame, Referrer-Policy, COOP, CORP, SRI. Mozilla's reference scanner for web-app hardening.

    target score A+
  2. / headers grade

    securityheaders.com

    Scott Helme's grader. Audits the response headers and lights up anything missing: Permissions-Policy, COEP/COOP, Reporting-API.

    target score A+
  3. / tls handshake

    SSL Labs (Qualys)

    The industry-standard TLS audit. Cipher suites, key exchange, certificate chain, OCSP behavior, handshake simulations for every browser.

    target score A+
  4. / full stack

    Hardenize

    Ivan Ristić's scanner. DNSSEC, CAA, SPF, DKIM, MTA-STS, TLS, HSTS, security.txt: one report.

    target score All green
  5. / rfc compliance

    internet.nl

    Dutch Internet Standards Platform, run by SIDN + ECP. Tests against modern open standards: IPv6, DNSSEC, HTTPS, security headers.

    target score 100%
  6. / chromium preload

    HSTS Preload List

    Submitted to Chromium's hard-coded HTTPS-only list. Once propagated, browsers refuse all HTTP connections to berkoc.com before a single byte is sent.

    status Pending inclusion
  7. / dnssec chain

    DNSViz

    Visualises the DNSSEC chain of trust from root to RRSIG. Live cryptographic proof of EdDSA algo 15 (Ed25519), KeyTag 20637.

    algorithm Ed25519 · algo 15
  8. / research ledger · self-hosted

    Open disclosure trail

    Twelve disclosures in the public ledger, six of them with CVE IDs, each with an OpenTimestamps proof (Bitcoin-anchored) on a PGP-clearsigned page. Manifest reproducibility verified at build time.

    browse → /research/
Or verify from your own terminal copy · paste · no signup · no tracker
// DNSSEC chain of trust: should return signed answers with the AD flag
$ dig berkoc.com +dnssec +short
$ dig DS  berkoc.com @1.1.1.1 +short

// Mail authentication: DKIM selectors + MTA-STS pointer
$ dig TXT  1984._domainkey.berkoc.com  +short
$ dig TXT  me._domainkey.berkoc.com    +short
$ dig TXT  _mta-sts.berkoc.com         +short

// Certificate transparency: every cert ever minted for berkoc.com
$ curl -s 'https://crt.sh/?q=berkoc.com&output=json' | jq '.[].name_value'

// Web-headers: strict CSP, HSTS preload, X-Frame DENY, Permissions-Policy
$ curl -sI https://berkoc.com | grep -Ei 'strict|content-security|x-frame|referrer|permissions'

// TLS handshake: must negotiate 1.3 with AES-256-GCM and X25519
$ echo | openssl s_client -connect berkoc.com:443 -servername berkoc.com 2>/dev/null \
  | openssl x509 -noout -dates -issuer -subject
Berkant Koc · portrait
Ravensburg · 2026

Information Systems · Linux Kernel · Sales.

B.Sc. Information Systems at RWU Ravensburg-Weingarten, completion September 2026. Seven-month internship in Sales / Key Account Management at AUMOVIO (Continental Automotive spin-off). Linux kernel patch author (drm/hyperv merged into mainline and backported to the stable trees 5.15 through 7.0; drm/qxl submitted, under review), CVE-2025-66455, CVE-2026-46435, CVE-2026-46690, CVE-2026-47425, CVE-2026-47757 and CVE-2026-53940 reporter, ten-plus GHSA submissions across the open-source ecosystem. CVP-approved researcher under Anthropic's Cyber Verification Program (May 2026).

Languages
German · Turkish · English
Location
Ravensburg, Germany · remote-friendly
Certificates
TryHackMe · Pre Security Path (Feb 2026)
/ 07 · Contact

Now your move.

I reply within 48 hours. Yes or no.

Get in touch.

Mail-form below for inquiries. Channels for everything else. PGP key on request.

No tracker · no analytics · sent direct via PHP-mail to