Anuragh KP0x55aa
Anuragh KP

Backend systems, and the security problems they tend to create.

I’m a Technical Lead at Cubet Techno Labs, where I’ve worked since 2021 — serverless commerce backends on AWS, and dragging a Learning Management System from Slim 3 to Slim 4 and PHP 8.2 without breaking it.

Outside that I publish compression libraries, contribute where I can, and volunteer with the Kerala Police Cyberdome, taking the occasional consulting engagement when it fits around that.

roleTechnical Lead
companyCubet Techno Labs
sinceJan 2021
basedKochi, Kerala
working since2017 · 9 years
writesPHP · Node · Rust
Two courses and a bad idea
MAR 2024
Getting Started with Rust

Linux Foundation, LFEL1002.

APR 2024
Linux Kernel Development

Linux Foundation, LFD103.

AFTER
0xOS

An x86_64 kernel in Rust with no blocking primitives. Asynchronous submission is the only interface it offers.

Security
CVE-2026-26019 · @langchain/community

SSRF bypass in RecursiveUrlLoader via insufficient URL origin validation

RecursiveUrlLoader's preventOutside option used String.startsWith() to decide whether a discovered link was same-site, so a page under https://example.com.attacker.com passed a check written against https://example.com. There was also no filtering of private or reserved IP ranges, so a crawled page could redirect the loader at cloud metadata endpoints such as 169.254.169.254, at localhost, or at RFC 1918 addresses — potentially exposing IAM credentials. The fix replaced the prefix comparison with a strict new URL(x).origin comparison and added an SSRF validation module applied before every outbound fetch.

cve
CVE-2026-26019
severity
medium
affected
<= 1.1.13
patched
1.1.14

Credited as reporter on GHSA-gf3v-fwqg-4vh7, published 2026-02-11. CVSS v3.1: CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:N/A:N.

laravel/framework · shipped in v12.48.0

An injection vector in query-builder index hints

forceIndex() and inRandomOrder() passed their argument into the compiled SQL without validation. I reported it through Laravel’s security process, wrote the patch, and it shipped across the MySQL, SQLite and SQL Server grammars.

commit
1dcf0b38
released
v12.48.0
grammars
3
advisory
GHSA-9p82-4j4w-5hw8
The part most people would leave out

Laravel didn’t issue a CVE for it. The maintainers' position was that not passing user input into an index hint is the developer's responsibility — the same contract as DB::raw(). They aren't wrong: nothing in the docs ever suggested those arguments were escaped.

The patch shipped anyway, which is the right outcome. A framework can hold a documented contract and still refuse to compile a string that could never be a valid index name. That's defence in depth, and it costs one preg_match. It’s also why the langchain finding above is worth reading alongside this one: when the process does end in a CVE, that’s reported just as plainly.

I wrote up how it was found and why no CVE was issued.

Some of the work
Where I’ve been
2022 —Kerala Police Cyberdome · Hon. Elite Member, Trivandrum, Kerala
2021 —Cubet Techno Labs · Technical Lead, Kochi, Kerala
2019 – 2020Bramma IT Solutions · Technical Lead, Kochi, Kerala
2018 – 2019Acodez IT Solutions · Node.js Developer, Calicut, Kerala
2017Sparrow Solution · PHP Developer, Kozhikode, Kerala
2017Tekubez · Developer, Kozhikode, Kerala
Certifications
The Linux Foundation
LFEL1006: Securing Projects with OpenSSF Scorecard
Jun 2026
The Linux Foundation
LFD103: A Beginner's Guide to Linux Kernel Development
Apr 2024
The Linux Foundation
LFEL1002: Getting Started with Rust
Mar 2024
EC-Council
Certified Ethical Hacker (CEH)
2021 – 2024, lapsed