Welcome to MikeDaDev's Blog – notes on Java, backend & system design.

Explore
MikeDaDev's Blog

All posts

I like to write about stuff I'm into. You'll find a mix of web dev articles, tech news and random thoughts from my life. Use the search below to filter by title.

ChainDrop: con worm npm đi qua cổng chính, mang theo cả provenance

Sáng 4/8/2026, tài khoản GitHub của maintainer Keyv bị chiếm, và chỉ vài giờ sau hàng trăm package npm khác cũng chứa mã độc chạy ngay lúc npm install. Bài này mổ xẻ ChainDrop, một biến thể họ Shai-Hulud: cách nó đánh cắp token rồi tự publish lại, vì sao bản độc vẫn có provenance hợp lệ, cách rà máy dev và CI, và những thứ nên đổi trong quy trình cài dependency.

Cisco ISE zero-day CVE-2026-76460: CVSS 10 và cánh cổng của cả mạng

CVE-2026-76460 là lỗi bypass xác thực CVSS 10.0 trên Cisco Identity Services Engine, bị khai thác thật và vào CISA KEV ngay ngày công bố 16/09/2026. Bài này đối chiếu advisory của Cisco với NVD, giải thích vì sao ISE là mục tiêu béo bở, phân biệt cái đã xác nhận với cái mới là suy đoán, rồi đi qua cách kiểm tra, vá và rà dấu hiệu bị xâm nhập.

Zero-day Citrix NetScaler CVE-2026-88771: log bị đầu độc thành root shell

Cuối tháng 9/2026, Citrix vá hai zero-day trên NetScaler ADC và Gateway đang bị khai thác thật: CVE-2026-88771 là command injection không cần đăng nhập, nằm trong một script Perl xử lý log của packet engine; CVE-2026-88772 là tràn bộ nhớ khi bật DTLS. Bài này mổ xẻ cơ chế của lỗi, dòng thời gian, cách kiểm tra thiết bị của mình, dấu hiệu đã bị xâm nhập, và vì sao thiết bị biên kiểu này cứ dính lỗi hoài kể từ thời CitrixBleed.

Node2Shell (CVE-2026-111497): lỗi Brotli trong Node.js và bài học về runtime

Node2Shell (CVE-2026-111497) là lỗi ghi tràn bộ nhớ trong bộ giải nén Brotli mà Node.js đóng gói sẵn bên trong. Bài này mổ xẻ vì sao một giá trị trả về bị hiểu nhầm lại thành lỗ hổng thực thi mã từ xa, ứng dụng Express và Next.js nào dính, cách kiểm tra, vá, giảm thiểu tạm thời, và vì sao `npm audit` không cứu được bạn trong vụ này.

PHP2Shell: hai lỗ hổng RCE CVE-2026-109618 và CVE-2026-109619

Ngày 21/10/2026 PHP phát hành 8.5.12, 8.4.27, 8.3.36 và 8.2.35 để vá hai lỗ hổng RCE không cần xác thực, CVSS v4 9.2, được gọi chung là PHP2Shell. Bài này mổ xẻ cơ chế (out-of-memory làm hỏng dữ liệu khởi tạo dở, và state cũ sống sót sang request sau), cách kiểm tra máy chủ, container, PHP-FPM sau CDN/WAF có dính không, cách vá, biện pháp tạm thời và những điều nguồn gốc chưa nói rõ.

CVE-2026-119977: bấm Update Now cũng có thể là lúc WordPress bị chiếm

CVE-2026-119977 là lỗi race condition (TOCTOU) trong chính quy trình nâng cấp core của WordPress: trong vài giây bản mới được giải nén vào một thư mục đoán được và truy cập được từ web, kẻ tấn công không cần đăng nhập có thể chen vào. Lỗi đã bị khai thác thật, CISA đưa vào KEV ngày 3/11/2026. Bài này mổ xẻ cơ chế, phiên bản bị ảnh hưởng, cách kiểm tra bằng wp-cli, biện pháp tạm thời và dấu hiệu bị xâm nhập.

Thiết kế hệ thống lưu trữ tài liệu trong thời đại số hoá

Ảnh CCCD lúc mở tài khoản, hợp đồng vay ký điện tử, sao kê tháng: mỗi ngày một ngân hàng vài chục triệu khách sinh ra hàng triệu file, và file nào cũng phải giữ đúng người xem, đúng thời hạn, không được mất. Bài này dựng một kiến trúc tham chiếu cho nền tảng lưu trữ tài liệu cỡ đó: ước lượng tải, upload chia chunk, lưu theo tầng nóng ấm lạnh, phân quyền RBAC kết hợp ABAC, mã hoá envelope, và những kiểu hỏng hay gặp khi chạy thật.

Kinh nghiệm phỏng vấn tại công ty A*

Bài test viết gồm 5 câu của một công ty fintech mình tạm gọi là A*: đa luồng cho n chiếc xe xuất phát cùng lúc, chuỗi con dài nhất không lặp ký tự, thiết kế API 3 tầng có mã hoá bất đối xứng, SDLC và mô hình OSI. Mình đi qua từng câu, chỗ dễ mất điểm, code đã chạy thử, rồi tổng hợp các vòng phỏng vấn thường gặp phía sau và cách chuẩn bị.

Claude Code template cho Spring Boot: mổ xẻ repo của Piotr Mińkowski

Repo claude-ai-spring-boot gói sẵn CLAUDE.md, 6 agent và 7 skill để Claude Code viết Spring Boot 4 theo đúng chuẩn. Bài này mở từng phần ra xem nó vận hành thế nào, rồi chạy thử code mẫu trong skill trên Spring Boot 4.1.1: chỗ nào compile không qua, chỗ nào Kubernetes sẽ âm thầm bỏ qua preStop hook, file quyền nào đi theo khi clone, và cách sửa trước khi đem về dùng cho team.