本地跑 AWS 还得开账号?
Floci 是免费本地 AWS 模拟器,docker compose up 就起,S3、DynamoDB、Lambda 能测。
适合本地开发测试,别当真云,先跑核心服务。
你先测哪个,S3 还是 DynamoDB?
#AWS #本地开发 @grok
floci-io/floci
5 likes · 266 views
Release Train: October 2026
New releases are out for all four emulators. In the sixteen days since the last ones, 78 people merged pull requests, and for 32 of them it was their first time contributing to any of the emulators. Thank you, and welcome.
What's new
- AWS 2.4.0: Lambda Web Functions, Aurora DSQL with a real PostgreSQL behind it, and Spark jobs on EMR running in real containers.
- Azure 0.16.0: ARM template deployments, Management Groups, and policy rules evaluated on writes.
- GCP 0.12.0: Compute Engine instances as Docker containers (opt-in), BigQuery copy jobs, and IAM custom roles.
- OCI 0.6.0: OCI Database with PostgreSQL on a real PostgreSQL container, Organizations, and KMS key import.
Release notes: AWS, Azure, GCP, OCI.
Something broken, or something missing you'd like to see next? Tell me here or open an issue.
Next release: November 15.
Join the Flock.
2 points
Its own numbers vs LocalStack Community:
→ ~24 ms startup vs ~3.3 s
→ ~13 MiB idle memory vs ~143 MiB
→ ~90 MB image vs ~1.0 GB
Time your own CI before you switch.
floci-io/floci
Floci คืออะไร? รัน AWS ทั้งชุดบนแล็ปท็อปได้จริงแค่ไหน เมื่อ LocalStack ยุบ Community Edition
โดย Nokka (นก-กา) | 30 ต.ค. 2026
!ภาพประกอบ: ก้อนเมฆรูปป็อปคอร์นลอยเหนือพื้นโต๊ะแล็ปท็อปในห้องมืด
บทความนี้เขียนโดย AI (deepseek-v4.1-flash · ผู้ให้บริการโมเดล: ollama-cloud) ผ่าน Hermes Agent ภายใต้การควบคุมและตรวจสอบคุณภาพโดยมนุษย์ - Nokka (นก-กา)
โพสต์ภาษาสเปนโพสต์หนึ่งเมื่อคืนวันที่ 29 ตุลาคม บอกว่าไม่ต้องจ่ายเงินให้ AWS เพื่อฝึกใช้บริการอีกต่อไป เพราะมีเครื่องมือชื่อ Floci ที่เอา AWS ทั้งชุดมารันบนแล็ปท็อปได้ ฟรี ไม่ต้องใช้บัตร ไม่ต้องมีบัญชี [1]
โพสต์นั้นได้ 311 ไลก์ 54 รีทวีต และ 8,715 วิวภายในไม่กี่ชั่วโมง ซึ่งไม่เยอะเมื่อเทียบกับข่าว AI กระแสหลัก ในมุมมองของผม กลุ่มที่น่าจะได้ประโยชน์ที่สุดคือคนที่กำลังเรียน AWS และกำลังมองหาทางเลี่ยงค่าใช้จ่าย
คำถามที่ผมสนใจคือ ตัวเลขในโพสต์กับตัวเลขในเอกสารของโปรเจกต์ตรงกันไหม และมีอะไรที่โพสต์ไม่ได้บอก
Floci คืออะไร
Floci เป็นอีมูเลเตอร์ AWS แบบโอเพนซอร์สที่รันในคอนเทนเนอร์เดียว เปิดพอร์ต 4566 แล้วให้ AWS SDK, CLI, Terraform หรือ CDK ชี้มาที่ localhost แทนที่จะไปที่คลาวด์จริง [2]
รีโปอยู่ที่ floci-io/floci มีดาว 27,297 ดวง ฟอร์กประมาณ 3,000 รายการ สัญญาอนุญาต MIT สร้างเมื่อ 18 กุมภาพันธ์ 2026 เวอร์ชันล่าสุดคือ 2.3.0 ออกเมื่อ 15 ตุลาคม 2026 และมี issue กับ PR ที่ยังเปิดรวมกัน 191 รายการ [2]
ชื่อ Floci มาจากเมฆชนิดหนึ่งชื่อ cirrocumulus floccus ที่หน้าตาเหมือนป็อปคอร์น [2] และโปรเจกต์นี้เคยอยู่ใต้บัญชี hectorvent/floci ก่อนย้ายมาเป็น org floci-io
ตัวเลขในโพสต์ กับตัวเลขในเอกสาร
โพสต์บอกว่ามี 69 บริการ แต่หน้าบริการของโปรเจกต์มีมากกว่านั้นมาก
ผมดึงตารางบนหน้า services ของเว็บทางการมาบวกเอง ได้ 137 แถว และผลรวม operation เฉพาะช่องที่เป็นตัวเลขล้วนคือ 3,680 รายการ (ถ้ารวมตัวเลขนำหน้าของอีก 5 แถวที่เขียนแบบผสม จะได้ 3,880) นับ ณ วันที่ 30 ตุลาคม 2026 [3]
ตัวเลข 137 แถวไม่เท่ากับจำนวนบริการ เพราะบางบริการแยกแถว control plane กับ data plane ออกจากกัน แต่ไม่ว่าอ่านแบบไหน 69 ก็ต่ำกว่าความเป็นจริง
โพสต์บอก เอกสาร/ของจริง
69 บริการ 137 แถว · 3,680 operations [3]
90 MB 86.8 MB (แท็ก latest) [4]
24 ms startup ตัวเลขของเจ้าของเอง [2]
13 MiB idle ตัวเลขของเจ้าของเอง [2]
ไม่ต้องมีบัญชี จริง แต่ auth ปิดโดยค่าเริ่มต้น [2]
ตัวเลข 24 มิลลิวินาทีที่คนนอกวัดแล้วไม่เท่า
ตารางเปรียบเทียบใน README เขียนว่า Floci เริ่มทำงานใน ~24 มิลลิวินาที ใช้หน่วยความจำตอนว่าง ~13 MiB และอิมเมจใหญ่ ~90 MB ส่วน LocalStack Community อยู่ที่ ~3.3 วินาที ~143 MiB และ ~1.0 GB [2]
ตัวเลขชุดนี้เป็นของเจ้าของโปรเจกต์เอง และมีคนนอกวัดซ้ำแล้ว ได้ผลต่างออกไปพอสมควร
บล็อกส่วนตัว Frank's World of Data Science ทดสอบเองเมื่อ 25 สิงหาคม 2026 แล้วรายงานว่า Floci เริ่มทำงานในราว 129 มิลลิวินาที เทียบกับ LocalStack ที่ราว 7 วินาทีในรอบเดียวกัน [9]
ส่วนการวัดเมื่อ 3 เมษายน 2026 บนเครื่อง Apple M4 (RAM 24 GB) รายงานว่า Floci เริ่มทำงานราว 3 วินาที ใช้หน่วยความจำหลังโหลด 56 MB และอิมเมจมีขนาด 276 MB [8]
จุดสำคัญคือ ผู้เขียนการวัดชิ้นนั้นเป็นหนึ่งในทีมผู้สร้าง MiniStack ซึ่งเป็นอีมูเลเตอร์คู่แข่ง ดังนั้นตัวเลขของ Floci ในงานชิ้นนั้นควรอ่านโดยรู้ว่าผู้วัดมีส่วนได้ส่วนเสีย [8]
เมื่อรวมสามแหล่งเข้าด้วยกัน ช่วงที่วัดได้จริงอยู่ระหว่าง 129 มิลลิวินาทีถึง 3 วินาที ไม่มีใครได้ 24 มิลลิวินาทีเท่าเจ้าของ
ผมยังไม่ได้ติดตั้งและรัน Floci บนเครื่องนี้ จึงไม่กล้ายืนยันว่าใครถูก แต่สิ่งที่ตรวจได้คือขนาดอิมเมจบน Docker Hub ซึ่งอยู่ที่ 86.8 MB ตรงกับที่โพสต์บอก [4]
และจุดที่คนมักเข้าใจผิดคือ 90 MB คือขนาดตัวอีมูเลเตอร์ ไม่ใช่ขนาดที่ต้องใช้จริงทั้งหมด เพราะบริการที่ใช้ Docker จริงจะดึงอิมเมจลูกเพิ่ม เช่น RDS ใช้ postgres:16-alpine, EKS ใช้ rancher/k3s, OpenSearch ดึงอิมเมจเต็มของ OpenSearch [2]
แปลว่า "เบา" จริงในตอนเปิด แต่จะหนักขึ้นตามบริการที่คุณเรียกใช้
ส่วนที่โพสต์พูดถูกและน่าจะเป็นเหตุผลที่คนแชร์
โพสต์บอกว่า RDS สร้าง Postgres จริง และ EKS สร้าง Kubernetes จริง อันนี้ตรงกับ README ที่ระบุว่าบริการที่ต้องการความแม่นยำสูงจะรันในคอนเทนเนอร์จริง ไม่ใช่ mock [2]
รายการที่รันจริงประกอบด้วย Lambda, RDS, Neptune, ElastiCache, MSK, ECS, EC2, EKS, OpenSearch, CodeBuild และ Managed Service for Apache Flink [2]
สำหรับคนที่เคยเจออีมูเลเตอร์ที่ตอบ API ได้แต่พฤติกรรมไม่เหมือนของจริง จุดนี้คือความต่างที่สำคัญ ในมุมมองของผม โค้ดที่รันบน Postgres ปลอมมักพังตอนขึ้นของจริงในเรื่อง SQL dialect และ IAM auth
บริบทที่ทำให้ Floci มาแรง
Floci ไม่ได้เกิดมาในสุญญากาศ วันที่ 23 มีนาคม 2026 LocalStack เปลี่ยนการส่งมอบอิมเมจ AWS เป็นอิมเมจเดียวที่ต้องใช้บัญชีและ auth token แม้ใน CI [5]
LocalStack เขียนเองในบล็อกอีกฉบับว่าเหตุผลคือผู้ใช้กลุ่มใหญ่โหลดอิมเมจไปใช้โดยแทบไม่มีปฏิสัมพันธ์กับบริษัท และบริษัทจะโฟกัสกับผู้ใช้ที่ลงทะเบียนและมีส่วนร่วมแทน [7]
ช่องว่างนั้นเองคือที่อยู่ของ Floci ซึ่งประกาศตัวว่าไม่มีบัญชี ไม่มี token ไม่มี feature gate และเป็น MIT [2]
สิ่งที่โพสต์ไม่พูด
ตัวเลข 24 มิลลิวินาทียังไม่มีใครวัดได้เท่า
ตารางใน README เป็นการเปรียบเทียบที่เจ้าของโปรเจกต์ทำเอง ซึ่งเป็นเรื่องปกติของโปรเจกต์โอเพนซอร์ส แต่ผู้อ่านควรรู้ว่ามันไม่ใช่ผลทดสอบอิสระ
ผมค้นหางานวัดจากบุคคลที่สามแล้ว พบสองชิ้นตามที่ยกมาข้างต้น แต่ทั้งคู่ไม่เคยได้ 24 มิลลิวินาทีเท่าเจ้าของ และไม่มีงานใดระบุว่าใช้เครื่องเดียวกับเจ้าของ
auth ถูกปิดโดยค่าเริ่มต้น
ในรายการค่าตั้งค่า README ระบุว่า FLOCI_SERVICES_S3_ENFORCE_AUTH มีค่าเริ่มต้นเป็น false [2]
แปลว่าถ้าคุณไม่เปิดเอง S3 ใน Floci จะไม่ตรวจลายเซ็นของคำขออย่างเข้มงวด ซึ่งดีต่อการทดสอบเร็ว ๆ แต่หมายความว่า ห้ามใช้ Floci ทดสอบเรื่องสิทธิ์หรือความปลอดภัย แล้วเอาผลไปสรุปว่าของจริงจะกันได้หรือไม่ได้
ดาวเยอะไม่ได้แปลว่าโค้ดนิ่ง
191 issue กับ PR ที่ยังเปิดรวมกัน และเวอร์ชันยังเป็น 2.x ไม่ใช่ 3.0 [2] โปรเจกต์อายุแปดเดือนที่ได้ 27,000 ดาวย่อมมีทั้งคนใช้จริงและคนลองแล้วเจอบั๊ก
เสียงวิจารณ์ตอนเปิดตัว
เธรด Hacker News เมื่อ 21 มีนาคม 2026 ซึ่งเป็นช่วงที่โปรเจกต์เปิดตัว มีคนถามตรง ๆ ว่าทั้งหมดนี้เขียนด้วย AI หรือไม่ เพราะคอมมิตแรกเกิดขึ้นไม่กี่วันก่อนเปิดตัว และไฟล์ .gitignore อ้างถึง Claude [6]
ผมตรวจรีโป ณ วันนี้แล้ว ไฟล์ CLAUDE.md ที่เธรดนั้นพูดถึงไม่มีอยู่แล้ว และรีโปมี contributors อย่างน้อย 100 คน โดยคนที่คอมมิตมากที่สุดคือ hectorvent ที่ 602 คอมมิต [2]
ผมยืนยันไม่ได้ว่าโปรเจกต์นี้ "เขียนด้วย AI ทั้งหมด" หรือไม่ และไม่คิดว่าคำถามนั้นตอบอะไรได้เกี่ยวกับคุณภาพของอีมูเลเตอร์ สิ่งที่ตอบได้คือตอนนี้มีคนร่วมพัฒนาหลายสิบคนและมี release ออกสม่ำเสมอ
เหมาะกับใคร
- คนเรียน AWS ที่อยากลอง S3, DynamoDB, Lambda, SQS โดยไม่ต้องผูกบัตร
- ทีมที่ทำ CI และต้องการรัน integration test กับบริการ AWS โดยไม่ต้องมี credential จริง
- คนที่ต้องการ Terraform หรือ CDK ทำงานได้ เพราะ endpoint เดียวรองรับทุกบริการ
เหมาะน้อยกว่าถ้า
- คุณต้องทดสอบ IAM หรือ security control เพราะการบังคับใช้สิทธิ์ปิดอยู่โดยค่าเริ่มต้น
- คุณต้องทดสอบ performance ของของจริง เพราะ Floci ไม่ได้อ้างว่าจำลอง latency และ throughput ของ AWS
- คุณต้องใช้บริการที่อยู่นอกตาราง เพราะถึงจะมี 137 แถว ก็ยังไม่ครบทุกบริการของ AWS
เริ่มใช้แบบเร็วที่สุด
services:
floci:
image: floci/floci:latest
ports:
- "4566:4566"
export AWS_ENDPOINT_URL=http://localhost:4566
export AWS_DEFAULT_REGION=us-east-1
export AWS_ACCESS_KEY_ID=test
export AWS_SECRET_ACCESS_KEY=test
aws s3 mb s3://my-bucket
aws dynamodb list-tables
ถ้าไม่ใช้ Docker ทางโปรเจกต์มีไบนารีสำเร็จรูปสำหรับ Linux, macOS และ Windows ขนาดประมาณ 40 MB [2]
สรุปที่ไม่ต้องเดา
Floci เป็นของจริงและใช้งานได้จริงในระดับหนึ่ง ตัวเลขในโพสต์ส่วนใหญ่มาจากเอกสารของโปรเจกต์เองและตรวจสอบได้ บางตัวเลขประเมินต่ำกว่าความเป็นจริงด้วยซ้ำ
โพสต์ไม่ได้บอกว่า ตัวเลขความเร็วเป็นของเจ้าของ การตรวจสิทธิ์ปิดอยู่โดยค่าเริ่มต้น และขนาด 90 MB คือแค่ตัวอีมูเลเตอร์ ไม่ใช่ทุกอย่างที่คุณจะดึงลงมา
ถ้าคุณจะใช้มันเรียน AWS หรือทำ CI เร็ว ๆ มันคุ้มที่จะลอง แต่ถ้าคุณจะใช้ตัดสินเรื่องความปลอดภัยหรือประสิทธิภาพของระบบจริง ยังไม่มีอะไรแทนการทดสอบบนคลาวด์จริงได้
แหล่งอ้างอิง
[1] X · AJ (@josesilesdata) โพสต์ 29 ต.ค. 2026 (311 ไลก์ · 8,715 วิว). x.com
[2] GitHub (30 ต.ค. 2026) · floci-io/floci (MIT · 27,297 ดาว · release 2.3.0). floci-io/floci
[3] Floci Docs (30 ต.ค. 2026) · Services Overview (137 แถว · 3,680 operations · 5 แถวผสม). floci.io
[4] Docker Hub (30 ต.ค. 2026) · floci/floci (5,668,940 pulls · latest 86.8 MB). hub.docker.com
[5] LocalStack Blog (5 มี.ค. 2026 · มีผล 23 มี.ค. 2026) · LocalStack for AWS Is Moving to a Single Image. blog.localstack.cloud
[6] Hacker News (21 มี.ค. 2026) · Floci: A free, open-source local AWS emulator (292 คะแนน · 95 คอมเมนต์). news.ycombinator.com
[7] LocalStack Blog (2026) · The Road Ahead: Changes to LocalStack's AWS Emulators. blog.localstack.cloud
[8] DEV (3 เม.ย. 2026) · MiniStack vs Floci vs LocalStack: Honest Performance Benchmark (ผู้เขียนเป็นผู้สร้าง MiniStack). dev.to
[9] Frank's World of Data Science & AI (25 ส.ค. 2026) · Emulating Real AWS Services for Free: A Deep Dive into Floci. franksworld.com
Floci: a free, open-source local AWS emulator for development, testing, and CI (27k stars)
What it does
All text below is quoted directly from the project README.
>Light, fluffy, and always free - The AWS Local Emulator alternative
Features:
- Local AWS without the cloud account: Run AWS-compatible services locally without an AWS account, auth token, or paid feature gates.
- Real Docker where fidelity matters: Lambda, RDS, Neptune, ElastiCache, MSK, ECS, EC2, EKS, OpenSearch, CodeBuild, and Managed Service for Apache Flink use real Docker-backed execution instead of shallow mocks.
- Drop-in AWS compatibility: Point standard AWS clients at http://localhost:4566. Existing credentials, regions, SDKs, CLI commands, and IaC workflows stay familiar.
- Fast enough for CI: The native image starts in milliseconds and keeps idle memory low, making it practical for local development and test pipelines.
- Configurable persistence: Choose from in-memory, persistent, hybrid, and write-ahead log storage depending on the durability profile you need.
>Already using LocalStack? Floci is a drop-in replacement: swap the image and keep going.
Repository
floci-io/floci
Repository stats
|Metric|Value|
|:-|:-|
|Stars|27,158|
|Forks|3.0k|
|Last release|2.3.0 (2026-10-15)|
|Languages|Java 97.2%, Python 1.4%, Shell 0.5%|
|Contributors|362|
|AI contributor accounts (Claude / Codex / Cursor / Copilot)|None|
|AI co-authored commits|Claude: 1, Copilot: 1|
Main contributor
|Field|Value|
|:-|:-|
|Name|Hector Ventura|
|GitHub|@hectorvent|
|Commits to this repo|585 (top contributor)|
|Bio|Creator of Floci - Any Cloud. Locally.|
|Company / Location|Texas|
|X / Twitter|@hectorvent|
|Followers|444|
──────────────────────────────
📌 How many great GitHub repos have you discovered and completely forgotten about?
Don't let another useful tool disappear into your Reddit feed. Get the community's best repos, organized by category, plus key takeaways from real developer discussions, delivered to your inbox twice a week.
📬 Never lose track of great repos again. Subscribe free.
26 points · 1 comment
floci - free open source tool
Floci is a free tool that runs AWS services locally on your laptop. Free and open source.
Comment Floci and I'll send you the link.
floci-io/floci
#opensource #github #ai #devtools #aws #awsemulation #devops #docker
More drops like this → repodrop.pages.dev
1 like · 60 views
CVE-2026-108598: Floci Velocity SSTI Code Injection Vulnerability — Analysis & Mitigation
*Originally published at faizanakhtarcyber.blogspot.com
Floci, the open-source AWS API Gateway emulator, shipped version 2.2.0 this month to fix CVE-2026-108598, a critical server-side template injection vulnerability that hands unauthenticated attackers full operating-system command execution on the host. An attacker creates a REST API with a MOCK integration, drops in a Velocity mapping template that uses $util reflection, and walks straight into Java's Runtime or ProcessBuilder. It is also a textbook failure of identity access management: the endpoint that creates APIs and writes executable templates asks for no identity at all.
Summary
Floci emulates AWS API Gateway for local development and testing, letting teams build and test API definitions without touching real AWS infrastructure. Its VtlTemplateEngine component renders Apache Velocity mapping templates for MOCK integrations — the feature that lets a fake API return canned responses. CVE-2026-108598 is a CWE-94 code injection flaw: Floci 1.1.0 before 2.2.0 placed no restrictions on those Velocity templates, and creating a REST API with a MOCK integration required no authentication.
The attack needs exactly one unauthenticated request: create a REST API whose MOCK integration carries a mapping template. Velocity templates expose a $util object, and through reflection the template can reach java.lang.Runtime or ProcessBuilder — at which point the "template" is simply a shell command, and the Floci JVM executes it with the service account's privileges. Full OS command execution, no credentials, no user interaction.
A public proof-of-concept has been published, which compresses the window between disclosure and weaponization to nearly zero. If your Floci instance is reachable from any network you do not fully trust, treat it as an exposed remote shell until proven otherwise.
Severity
- CVE ID: CVE-2026-108598
- CVSS: 9.8 Critical — VulnCheck CNA scoring
- CVSS 4.0 vector: CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
- Weakness: CWE-94 — Improper Control of Generation of Code ('Code Injection'); also tagged CWE-78 (OS Command Injection)
- Attack requirements: none — unauthenticated, remote, low complexity, no user interaction
- Impact: arbitrary OS command execution on the host running the Floci JVM — full system compromise of that box
- Exploited in the wild: no confirmed reports; a public PoC exists, which historically accelerates exploitation
The vector is the maximum-severity shape: network, low complexity, zero privileges, total impact on confidentiality, integrity, and availability. There is no interaction gate and no privilege gate — the only gate is network reachability.
Affected Versions
- Floci 1.1.0 before 2.2.0 — every release in that range is affected
- Fixed in: 2.2.0 (restricts the Velocity template engine)
- Component: VtlTemplateEngine — the Velocity mapping-template renderer for MOCK integrations
- Exposure: any Floci instance reachable over the network — developer laptops on shared networks, shared test servers, CI runners, and any deployment bound to 0.0.0.0 instead of localhost
The dangerous misconception is "it's just a local dev tool." Dev tools run with developer privileges, on machines holding cloud credentials, SSH keys, and source code — and they are routinely left listening on shared or corporate networks. "Local" describes the intent, not the exposure.
Technical Analysis
From $util to Shell: The Classic Velocity Escalation
Server-side template injection in Apache Velocity follows a well-worn escalation path. Velocity templates are meant to be presentation logic — $variable substitution and simple directives — but the engine historically exposes enough of the Java object graph to escape the sandbox. The $util object in a mapping template is the foothold: through it, the template can obtain a Class reference, and from there use reflection to load java.lang.Runtime and call getRuntime().exec(), or instantiate ProcessBuilder directly. Each step is "legitimate" template functionality; the chain as a whole is arbitrary command execution.
Here is the part that should unsettle emulator authors: in a MOCK integration, the template is not smuggled in through a user profile field or a comment box — it is the integration definition itself. The attacker is using the product's documented feature exactly as designed. The vulnerability is not that Velocity can reach Runtime (that is a known, hard-to-fully-sandbox property of the engine); it is that an unauthenticated stranger is allowed to author integrations. The template engine is the weapon, but the missing authorization check is the unlocked armory door.
An Identity Access Management Failure, Not Just a Template Bug
Strip away the template details and CVE-2026-108598 is an identity access management failure. In real AWS API Gateway, creating a REST API and defining its integrations is a privileged operation gated by IAM policies — you prove who you are, and the policy decides what you may do. Floci emulates the API surface of API Gateway but emulated none of the authorization boundary: anyone who could reach the service could create APIs and write executable templates, with no identity presented and no policy evaluated.
This is the recurring sin of developer emulators and local service mocks: they reproduce the functionality of the cloud service faithfully while silently dropping the security model. Every emulator, mock, and localstack-style tool in your stack deserves one hard question: which authorization checks did the emulation leave out, and who can reach the ports where those checks are missing? As a pentest finding, "emulator reachable without authentication" writes itself — the only work is checking which ones your target runs.
Dev Tools With Server Privileges
Consider where Floci actually runs. On a developer laptop, a compromise means the attacker's code executes alongside the developer's AWS credentials, SSH keys, and source checkouts — a straight path to cloud and code-infrastructure takeover. On a shared test server or CI runner, it means execution on a box that likely holds deployment tokens and pipeline secrets. Emulators are frequently started with permissive network bindings (0.0.0.0 for container access or team sharing) and then forgotten, and they rarely appear in asset inventories because "it's just a dev tool."
The data-integrity angle is what incident responders will feel first. A MOCK integration's template controls what the fake API returns — which means a compromised Floci can silently serve manipulated responses to every developer and test suite pointed at it. Poison the mock and you poison the tests: passing builds against lying APIs, integration tests that validate attacker-shaped data, and a false sense of correctness that survives long after the compromise.
Why This Matters
Unauthenticated remote code execution on network-reachable infrastructure is the season's dominant pattern — a perimeter box owned without credentials, a gateway turned into a launchpad. Floci extends the pattern somewhere defenders rarely look: the development toolchain. The perimeter is no longer just the firewall and the VPN — it is every service listening on your laptop, your test server, and your CI network.
What does vulnerable mean in the context of CVE-2026-108598? It means a tool you installed to pretend to be AWS can be turned into a real shell on your machine by anyone on your network, with no password and no phishing required. What is data integrity worth when a template can run shell commands? Nothing — once the mock server is owned, every "passing" test it serves is evidence manufactured by the attacker. Patch the emulator, then question everything it told you while it was exposed.
Mitigation
- Upgrade immediately to Floci 2.2.0 — the release restricts the Velocity template engine and closes the injection path
- Kill the network exposure: bind Floci to localhost only; never run it on 0.0.0.0 on shared, corporate, or CI networks
- Inventory every instance: search developer laptops, shared test servers, containers, and CI runners for Floci — un-inventoried dev tools are unpatched dev tools
- Assume breach if it was exposed: any instance reachable from an untrusted network should be treated as compromised — rotate credentials and tokens that lived on that host, and rebuild rather than just patching
- Distrust its recent answers: if the instance served MOCK responses while exposed, re-run affected test suites against a patched instance — a compromised mock can make failing code look green
- No workaround short of the patch besides strict network isolation — restricting who can reach the service is the only mitigation on affected versions
References
- NVD: nvd.nist.gov
- VulnCheck advisory: vulncheck.com
- ThreatAft: threataft.com
- Floci 2.2.0 release (fix): github.com/floci-io/floci/releases/tag/2.2.0
Report by Faizan Akhtar — The Cyber Security Researcher
@pooridev من برای لوکال از این استفاده میکنم
floci-io/floci
همه چی داره
2 likes · 60 views
想在本机跑一套免费 AWS 环境,又不想注册账号、不想碰付费套餐?Floci 真把这场景做出来了。☁️
69 个核心服务一个不少,S3、SQS、Lambda、DynamoDB、RDS 全涵盖,监听本地 4566 端口,现有 SDK 和 CLI 工具接上就能用。
了解floci-io/floci t.co
4 likes · 394 views
Parity Suite 3.6 and a month of emulator fixes
When I wrote up [3.0.0](/articles/parity-suite-300-release-notes) in August, Floci was a C on the board with 209 failing tests. By 3rd September the suite had grown to 1,251 tests and it was a D with 337. This morning's run has it failing one.
That's the real news in this release, and none of it is mine. The suite barely grew. The emulators got better.
The board
The suite reached 1,251 tests on 3rd September, so that's the fairest place to measure from. It's at 1,266 now.
| | 3rd September | 9th October |
|---|---|---|
| Floci | D, 337 failing | A, 1 failing |
| LocalStack | B, 101 failing | A, 31 failing |
| MiniStack | C, 220 failing | B, 84 failing |
All three now pass every Tier 1 test, the core of DynamoDB that most applications rely on. Five weeks ago Floci failed 50 of those, MiniStack 28 and LocalStack 14.
Floci didn't get there by doing less, either. Its coverage, the share of the suite it attempts rather than skips, went up from 95.1% to 99.4% over the same stretch.
Its one remaining failure is an edge case. A transaction carries a value nested deeper than DynamoDB's 32-level limit, but only in a condition, so it never gets written. Most regions don't check its depth and go on to evaluate the condition. eu-west-2 and the two other regions that now validate transactions up front (more on that below) refuse the whole request. Floci does neither: it cancels the transaction.
Most of LocalStack's 31 are PartiQL (21 of them), with the rest in exact error wording and limits. MiniStack's 84 are nearly all Tier 3, mostly exact error messages and limits.
It's good to see the board being used for what I built it for. Floci's tests and pull requests cite it by name, and MiniStack's maintainers point contributors to it when the question of how close to real DynamoDB they are comes up. Thanks to both teams for that.
AWS moved in the middle of a run
3.6.0 was tagged on 8th October and never published. While it was being measured, eu-west-2 changed how it validates transactions, so five tests failed against real DynamoDB and no board came out.
It's part of the same rollout I [noticed back in June](/articles/dynamodb-changed-its-validation-errors), and it still hasn't finished. eu-west-2, eu-north-1 and ap-northeast-2 now check a transaction's request before running it. The other 30 regions don't yet, and a few of the changes are more than wording: the same request can succeed in one region and fail in another.
For example, take an item that's already there, and a single SET that brings it up to exactly DynamoDB's 400KB limit (409,600 bytes), sent as an Update inside TransactWriteItems:
// bigValue brings the item to 409,600 bytes
await ddb.send(new TransactWriteItemsCommand({
TransactItems: [{
Update: {
TableName: 'orders',
Key: { pk: { S: 'Y' } },
UpdateExpression: 'SET p = :p',
ExpressionAttributeValues: { ':p': bigValue },
},
}],
}))
In us-east-1 that succeeds and the item is stored at 409,600 bytes. In eu-west-2, since 8th October, it fails with ValidationException: Item size to update has exceeded the maximum allowed size. If your tests run against one region and production sits in another, the two can disagree on this request. It's another reason [you can't pin DynamoDB to one region](/articles/you-cant-pin-dynamodb-to-one-region).
3.6.1 is the fix. Those five tests accept either answer until the regions settle, and no engine loses a test over it. Pinning to the old answer would fail real DynamoDB in eu-west-2, which is the region the suite measures against, and pinning to the new one would fail every engine that matches the 30 regions still giving the old answer. Both answers are what DynamoDB actually does today, so both count.
Smaller changes
The board now sorts by grade, best first. It used to sort on divergence alone, which could put a target with a worse grade above a better one. No grade or figure changed.
The suite grew by fifteen tests across 3.5.0 and 3.6, fourteen of them from exoego, covering size and nesting limits on batch and transaction writes.
Coming next
The suite's going to grow again soon. I've found some gaps in what it covers, and there are around 160 new tests waiting to go in, all checked against real DynamoDB first. I'll probably merge them early next week, and I'd expect most engines' figures to move when they do.
The full notes are in the 3.6.1 release, the suite is at paritysuite/dynamodb-conformance, and the board is at paritysuite.org. If something looks wrong, an issue is welcome.
1 comment
Mentions
本地跑 AWS 还得开账号? Floci 是免费本地 AWS 模拟器,docker compose up 就起,S3、DynamoDB、Lambda 能测。 适合本地开发测试,别当真云,先跑核心服务。 你先测哪个,S3 还是 DynamoDB? #AWS #本地开发 @grok floci-io/floci
Release Train: October 2026 New releases are out for all four emulators. In the sixteen days since the last ones, 78 people merged pull requests, and for 32 of them it was their first time contributing to any of the emulators. Thank you, and welcome. What's new - AWS 2.4.0: Lambda Web Functions, Aurora DSQL with a real PostgreSQL behind it, and Spark jobs on EMR running in real containers. - Azure 0.16.0: ARM template deployments, Management Groups, and policy rules evaluated on writes. - GCP 0.12.0: Compute Engine instances as Docker containers (opt-in), BigQuery copy jobs, and IAM custom roles. - OCI 0.6.0: OCI Database with PostgreSQL on a real PostgreSQL container, Organizations, and KMS key import. Release notes: AWS, Azure, GCP, OCI. Something broken, or something missing you'd like to see next? Tell me here or open an issue. Next release: November 15. Join the Flock.
Its own numbers vs LocalStack Community: → ~24 ms startup vs ~3.3 s → ~13 MiB idle memory vs ~143 MiB → ~90 MB image vs ~1.0 GB Time your own CI before you switch. floci-io/floci
Floci คืออะไร? รัน AWS ทั้งชุดบนแล็ปท็อปได้จริงแค่ไหน เมื่อ LocalStack ยุบ Community Edition โดย Nokka (นก-กา) | 30 ต.ค. 2026 !ภาพประกอบ: ก้อนเมฆรูปป็อปคอร์นลอยเหนือพื้นโต๊ะแล็ปท็อปในห้องมืด บทความนี้เขียนโดย AI (deepseek-v4.1-flash · ผู้ให้บริการโมเดล: ollama-cloud) ผ่าน Hermes Agent ภายใต้การควบคุมและตรวจสอบคุณภาพโดยมนุษย์ - Nokka (นก-กา) โพสต์ภาษาสเปนโพสต์หนึ่งเมื่อคืนวันที่ 29 ตุลาคม บอกว่าไม่ต้องจ่ายเงินให้ AWS เพื่อฝึกใช้บริการอีกต่อไป เพราะมีเครื่องมือชื่อ Floci ที่เอา AWS ทั้งชุดมารันบนแล็ปท็อปได้ ฟรี ไม่ต้องใช้บัตร ไม่ต้องมีบัญชี [1] โพสต์นั้นได้ 311 ไลก์ 54 รีทวีต และ 8,715 วิวภายในไม่กี่ชั่วโมง ซึ่งไม่เยอะเมื่อเทียบกับข่าว AI กระแสหลัก ในมุมมองของผม กลุ่มที่น่าจะได้ประโยชน์ที่สุดคือคนที่กำลังเรียน AWS และกำลังมองหาทางเลี่ยงค่าใช้จ่าย คำถามที่ผมสนใจคือ ตัวเลขในโพสต์กับตัวเลขในเอกสารของโปรเจกต์ตรงกันไหม และมีอะไรที่โพสต์ไม่ได้บอก Floci คืออะไร Floci เป็นอีมูเลเตอร์ AWS แบบโอเพนซอร์สที่รันในคอนเทนเนอร์เดียว เปิดพอร์ต 4566 แล้วให้ AWS SDK, CLI, Terraform หรือ CDK ชี้มาที่ localhost แทนที่จะไปที่คลาวด์จริง [2] รีโปอยู่ที่ floci-io/floci มีดาว 27,297 ดวง ฟอร์กประมาณ 3,000 รายการ สัญญาอนุญาต MIT สร้างเมื่อ 18 กุมภาพันธ์ 2026 เวอร์ชันล่าสุดคือ 2.3.0 ออกเมื่อ 15 ตุลาคม 2026 และมี issue กับ PR ที่ยังเปิดรวมกัน 191 รายการ [2] ชื่อ Floci มาจากเมฆชนิดหนึ่งชื่อ cirrocumulus floccus ที่หน้าตาเหมือนป็อปคอร์น [2] และโปรเจกต์นี้เคยอยู่ใต้บัญชี hectorvent/floci ก่อนย้ายมาเป็น org floci-io ตัวเลขในโพสต์ กับตัวเลขในเอกสาร โพสต์บอกว่ามี 69 บริการ แต่หน้าบริการของโปรเจกต์มีมากกว่านั้นมาก ผมดึงตารางบนหน้า services ของเว็บทางการมาบวกเอง ได้ 137 แถว และผลรวม operation เฉพาะช่องที่เป็นตัวเลขล้วนคือ 3,680 รายการ (ถ้ารวมตัวเลขนำหน้าของอีก 5 แถวที่เขียนแบบผสม จะได้ 3,880) นับ ณ วันที่ 30 ตุลาคม 2026 [3] ตัวเลข 137 แถวไม่เท่ากับจำนวนบริการ เพราะบางบริการแยกแถว control plane กับ data plane ออกจากกัน แต่ไม่ว่าอ่านแบบไหน 69 ก็ต่ำกว่าความเป็นจริง โพสต์บอก เอกสาร/ของจริง 69 บริการ 137 แถว · 3,680 operations [3] 90 MB 86.8 MB (แท็ก latest) [4] 24 ms startup ตัวเลขของเจ้าของเอง [2] 13 MiB idle ตัวเลขของเจ้าของเอง [2] ไม่ต้องมีบัญชี จริง แต่ auth ปิดโดยค่าเริ่มต้น [2] ตัวเลข 24 มิลลิวินาทีที่คนนอกวัดแล้วไม่เท่า ตารางเปรียบเทียบใน README เขียนว่า Floci เริ่มทำงานใน ~24 มิลลิวินาที ใช้หน่วยความจำตอนว่าง ~13 MiB และอิมเมจใหญ่ ~90 MB ส่วน LocalStack Community อยู่ที่ ~3.3 วินาที ~143 MiB และ ~1.0 GB [2] ตัวเลขชุดนี้เป็นของเจ้าของโปรเจกต์เอง และมีคนนอกวัดซ้ำแล้ว ได้ผลต่างออกไปพอสมควร บล็อกส่วนตัว Frank's World of Data Science ทดสอบเองเมื่อ 25 สิงหาคม 2026 แล้วรายงานว่า Floci เริ่มทำงานในราว 129 มิลลิวินาที เทียบกับ LocalStack ที่ราว 7 วินาทีในรอบเดียวกัน [9] ส่วนการวัดเมื่อ 3 เมษายน 2026 บนเครื่อง Apple M4 (RAM 24 GB) รายงานว่า Floci เริ่มทำงานราว 3 วินาที ใช้หน่วยความจำหลังโหลด 56 MB และอิมเมจมีขนาด 276 MB [8] จุดสำคัญคือ ผู้เขียนการวัดชิ้นนั้นเป็นหนึ่งในทีมผู้สร้าง MiniStack ซึ่งเป็นอีมูเลเตอร์คู่แข่ง ดังนั้นตัวเลขของ Floci ในงานชิ้นนั้นควรอ่านโดยรู้ว่าผู้วัดมีส่วนได้ส่วนเสีย [8] เมื่อรวมสามแหล่งเข้าด้วยกัน ช่วงที่วัดได้จริงอยู่ระหว่าง 129 มิลลิวินาทีถึง 3 วินาที ไม่มีใครได้ 24 มิลลิวินาทีเท่าเจ้าของ ผมยังไม่ได้ติดตั้งและรัน Floci บนเครื่องนี้ จึงไม่กล้ายืนยันว่าใครถูก แต่สิ่งที่ตรวจได้คือขนาดอิมเมจบน Docker Hub ซึ่งอยู่ที่ 86.8 MB ตรงกับที่โพสต์บอก [4] และจุดที่คนมักเข้าใจผิดคือ 90 MB คือขนาดตัวอีมูเลเตอร์ ไม่ใช่ขนาดที่ต้องใช้จริงทั้งหมด เพราะบริการที่ใช้ Docker จริงจะดึงอิมเมจลูกเพิ่ม เช่น RDS ใช้ postgres:16-alpine, EKS ใช้ rancher/k3s, OpenSearch ดึงอิมเมจเต็มของ OpenSearch [2] แปลว่า "เบา" จริงในตอนเปิด แต่จะหนักขึ้นตามบริการที่คุณเรียกใช้ ส่วนที่โพสต์พูดถูกและน่าจะเป็นเหตุผลที่คนแชร์ โพสต์บอกว่า RDS สร้าง Postgres จริง และ EKS สร้าง Kubernetes จริง อันนี้ตรงกับ README ที่ระบุว่าบริการที่ต้องการความแม่นยำสูงจะรันในคอนเทนเนอร์จริง ไม่ใช่ mock [2] รายการที่รันจริงประกอบด้วย Lambda, RDS, Neptune, ElastiCache, MSK, ECS, EC2, EKS, OpenSearch, CodeBuild และ Managed Service for Apache Flink [2] สำหรับคนที่เคยเจออีมูเลเตอร์ที่ตอบ API ได้แต่พฤติกรรมไม่เหมือนของจริง จุดนี้คือความต่างที่สำคัญ ในมุมมองของผม โค้ดที่รันบน Postgres ปลอมมักพังตอนขึ้นของจริงในเรื่อง SQL dialect และ IAM auth บริบทที่ทำให้ Floci มาแรง Floci ไม่ได้เกิดมาในสุญญากาศ วันที่ 23 มีนาคม 2026 LocalStack เปลี่ยนการส่งมอบอิมเมจ AWS เป็นอิมเมจเดียวที่ต้องใช้บัญชีและ auth token แม้ใน CI [5] LocalStack เขียนเองในบล็อกอีกฉบับว่าเหตุผลคือผู้ใช้กลุ่มใหญ่โหลดอิมเมจไปใช้โดยแทบไม่มีปฏิสัมพันธ์กับบริษัท และบริษัทจะโฟกัสกับผู้ใช้ที่ลงทะเบียนและมีส่วนร่วมแทน [7] ช่องว่างนั้นเองคือที่อยู่ของ Floci ซึ่งประกาศตัวว่าไม่มีบัญชี ไม่มี token ไม่มี feature gate และเป็น MIT [2] สิ่งที่โพสต์ไม่พูด ตัวเลข 24 มิลลิวินาทียังไม่มีใครวัดได้เท่า ตารางใน README เป็นการเปรียบเทียบที่เจ้าของโปรเจกต์ทำเอง ซึ่งเป็นเรื่องปกติของโปรเจกต์โอเพนซอร์ส แต่ผู้อ่านควรรู้ว่ามันไม่ใช่ผลทดสอบอิสระ ผมค้นหางานวัดจากบุคคลที่สามแล้ว พบสองชิ้นตามที่ยกมาข้างต้น แต่ทั้งคู่ไม่เคยได้ 24 มิลลิวินาทีเท่าเจ้าของ และไม่มีงานใดระบุว่าใช้เครื่องเดียวกับเจ้าของ auth ถูกปิดโดยค่าเริ่มต้น ในรายการค่าตั้งค่า README ระบุว่า FLOCI_SERVICES_S3_ENFORCE_AUTH มีค่าเริ่มต้นเป็น false [2] แปลว่าถ้าคุณไม่เปิดเอง S3 ใน Floci จะไม่ตรวจลายเซ็นของคำขออย่างเข้มงวด ซึ่งดีต่อการทดสอบเร็ว ๆ แต่หมายความว่า ห้ามใช้ Floci ทดสอบเรื่องสิทธิ์หรือความปลอดภัย แล้วเอาผลไปสรุปว่าของจริงจะกันได้หรือไม่ได้ ดาวเยอะไม่ได้แปลว่าโค้ดนิ่ง 191 issue กับ PR ที่ยังเปิดรวมกัน และเวอร์ชันยังเป็น 2.x ไม่ใช่ 3.0 [2] โปรเจกต์อายุแปดเดือนที่ได้ 27,000 ดาวย่อมมีทั้งคนใช้จริงและคนลองแล้วเจอบั๊ก เสียงวิจารณ์ตอนเปิดตัว เธรด Hacker News เมื่อ 21 มีนาคม 2026 ซึ่งเป็นช่วงที่โปรเจกต์เปิดตัว มีคนถามตรง ๆ ว่าทั้งหมดนี้เขียนด้วย AI หรือไม่ เพราะคอมมิตแรกเกิดขึ้นไม่กี่วันก่อนเปิดตัว และไฟล์ .gitignore อ้างถึง Claude [6] ผมตรวจรีโป ณ วันนี้แล้ว ไฟล์ CLAUDE.md ที่เธรดนั้นพูดถึงไม่มีอยู่แล้ว และรีโปมี contributors อย่างน้อย 100 คน โดยคนที่คอมมิตมากที่สุดคือ hectorvent ที่ 602 คอมมิต [2] ผมยืนยันไม่ได้ว่าโปรเจกต์นี้ "เขียนด้วย AI ทั้งหมด" หรือไม่ และไม่คิดว่าคำถามนั้นตอบอะไรได้เกี่ยวกับคุณภาพของอีมูเลเตอร์ สิ่งที่ตอบได้คือตอนนี้มีคนร่วมพัฒนาหลายสิบคนและมี release ออกสม่ำเสมอ เหมาะกับใคร - คนเรียน AWS ที่อยากลอง S3, DynamoDB, Lambda, SQS โดยไม่ต้องผูกบัตร - ทีมที่ทำ CI และต้องการรัน integration test กับบริการ AWS โดยไม่ต้องมี credential จริง - คนที่ต้องการ Terraform หรือ CDK ทำงานได้ เพราะ endpoint เดียวรองรับทุกบริการ เหมาะน้อยกว่าถ้า - คุณต้องทดสอบ IAM หรือ security control เพราะการบังคับใช้สิทธิ์ปิดอยู่โดยค่าเริ่มต้น - คุณต้องทดสอบ performance ของของจริง เพราะ Floci ไม่ได้อ้างว่าจำลอง latency และ throughput ของ AWS - คุณต้องใช้บริการที่อยู่นอกตาราง เพราะถึงจะมี 137 แถว ก็ยังไม่ครบทุกบริการของ AWS เริ่มใช้แบบเร็วที่สุด services: floci: image: floci/floci:latest ports: - "4566:4566" export AWS_ENDPOINT_URL=http://localhost:4566 export AWS_DEFAULT_REGION=us-east-1 export AWS_ACCESS_KEY_ID=test export AWS_SECRET_ACCESS_KEY=test aws s3 mb s3://my-bucket aws dynamodb list-tables ถ้าไม่ใช้ Docker ทางโปรเจกต์มีไบนารีสำเร็จรูปสำหรับ Linux, macOS และ Windows ขนาดประมาณ 40 MB [2] สรุปที่ไม่ต้องเดา Floci เป็นของจริงและใช้งานได้จริงในระดับหนึ่ง ตัวเลขในโพสต์ส่วนใหญ่มาจากเอกสารของโปรเจกต์เองและตรวจสอบได้ บางตัวเลขประเมินต่ำกว่าความเป็นจริงด้วยซ้ำ โพสต์ไม่ได้บอกว่า ตัวเลขความเร็วเป็นของเจ้าของ การตรวจสิทธิ์ปิดอยู่โดยค่าเริ่มต้น และขนาด 90 MB คือแค่ตัวอีมูเลเตอร์ ไม่ใช่ทุกอย่างที่คุณจะดึงลงมา ถ้าคุณจะใช้มันเรียน AWS หรือทำ CI เร็ว ๆ มันคุ้มที่จะลอง แต่ถ้าคุณจะใช้ตัดสินเรื่องความปลอดภัยหรือประสิทธิภาพของระบบจริง ยังไม่มีอะไรแทนการทดสอบบนคลาวด์จริงได้ แหล่งอ้างอิง [1] X · AJ (@josesilesdata) โพสต์ 29 ต.ค. 2026 (311 ไลก์ · 8,715 วิว). x.com [2] GitHub (30 ต.ค. 2026) · floci-io/floci (MIT · 27,297 ดาว · release 2.3.0). floci-io/floci [3] Floci Docs (30 ต.ค. 2026) · Services Overview (137 แถว · 3,680 operations · 5 แถวผสม). floci.io [4] Docker Hub (30 ต.ค. 2026) · floci/floci (5,668,940 pulls · latest 86.8 MB). hub.docker.com [5] LocalStack Blog (5 มี.ค. 2026 · มีผล 23 มี.ค. 2026) · LocalStack for AWS Is Moving to a Single Image. blog.localstack.cloud [6] Hacker News (21 มี.ค. 2026) · Floci: A free, open-source local AWS emulator (292 คะแนน · 95 คอมเมนต์). news.ycombinator.com [7] LocalStack Blog (2026) · The Road Ahead: Changes to LocalStack's AWS Emulators. blog.localstack.cloud [8] DEV (3 เม.ย. 2026) · MiniStack vs Floci vs LocalStack: Honest Performance Benchmark (ผู้เขียนเป็นผู้สร้าง MiniStack). dev.to [9] Frank's World of Data Science & AI (25 ส.ค. 2026) · Emulating Real AWS Services for Free: A Deep Dive into Floci. franksworld.com
Floci: a free, open-source local AWS emulator for development, testing, and CI (27k stars) What it does All text below is quoted directly from the project README. >Light, fluffy, and always free - The AWS Local Emulator alternative Features: - Local AWS without the cloud account: Run AWS-compatible services locally without an AWS account, auth token, or paid feature gates. - Real Docker where fidelity matters: Lambda, RDS, Neptune, ElastiCache, MSK, ECS, EC2, EKS, OpenSearch, CodeBuild, and Managed Service for Apache Flink use real Docker-backed execution instead of shallow mocks. - Drop-in AWS compatibility: Point standard AWS clients at http://localhost:4566. Existing credentials, regions, SDKs, CLI commands, and IaC workflows stay familiar. - Fast enough for CI: The native image starts in milliseconds and keeps idle memory low, making it practical for local development and test pipelines. - Configurable persistence: Choose from in-memory, persistent, hybrid, and write-ahead log storage depending on the durability profile you need. >Already using LocalStack? Floci is a drop-in replacement: swap the image and keep going. Repository floci-io/floci Repository stats |Metric|Value| |:-|:-| |Stars|27,158| |Forks|3.0k| |Last release|2.3.0 (2026-10-15)| |Languages|Java 97.2%, Python 1.4%, Shell 0.5%| |Contributors|362| |AI contributor accounts (Claude / Codex / Cursor / Copilot)|None| |AI co-authored commits|Claude: 1, Copilot: 1| Main contributor |Field|Value| |:-|:-| |Name|Hector Ventura| |GitHub|@hectorvent| |Commits to this repo|585 (top contributor)| |Bio|Creator of Floci - Any Cloud. Locally.| |Company / Location|Texas| |X / Twitter|@hectorvent| |Followers|444| ────────────────────────────── 📌 How many great GitHub repos have you discovered and completely forgotten about? Don't let another useful tool disappear into your Reddit feed. Get the community's best repos, organized by category, plus key takeaways from real developer discussions, delivered to your inbox twice a week. 📬 Never lose track of great repos again. Subscribe free.
floci - free open source tool Floci is a free tool that runs AWS services locally on your laptop. Free and open source. Comment Floci and I'll send you the link. floci-io/floci #opensource #github #ai #devtools #aws #awsemulation #devops #docker More drops like this → repodrop.pages.dev
CVE-2026-108598: Floci Velocity SSTI Code Injection Vulnerability — Analysis & Mitigation *Originally published at faizanakhtarcyber.blogspot.com Floci, the open-source AWS API Gateway emulator, shipped version 2.2.0 this month to fix CVE-2026-108598, a critical server-side template injection vulnerability that hands unauthenticated attackers full operating-system command execution on the host. An attacker creates a REST API with a MOCK integration, drops in a Velocity mapping template that uses $util reflection, and walks straight into Java's Runtime or ProcessBuilder. It is also a textbook failure of identity access management: the endpoint that creates APIs and writes executable templates asks for no identity at all. Summary Floci emulates AWS API Gateway for local development and testing, letting teams build and test API definitions without touching real AWS infrastructure. Its VtlTemplateEngine component renders Apache Velocity mapping templates for MOCK integrations — the feature that lets a fake API return canned responses. CVE-2026-108598 is a CWE-94 code injection flaw: Floci 1.1.0 before 2.2.0 placed no restrictions on those Velocity templates, and creating a REST API with a MOCK integration required no authentication. The attack needs exactly one unauthenticated request: create a REST API whose MOCK integration carries a mapping template. Velocity templates expose a $util object, and through reflection the template can reach java.lang.Runtime or ProcessBuilder — at which point the "template" is simply a shell command, and the Floci JVM executes it with the service account's privileges. Full OS command execution, no credentials, no user interaction. A public proof-of-concept has been published, which compresses the window between disclosure and weaponization to nearly zero. If your Floci instance is reachable from any network you do not fully trust, treat it as an exposed remote shell until proven otherwise. Severity - CVE ID: CVE-2026-108598 - CVSS: 9.8 Critical — VulnCheck CNA scoring - CVSS 4.0 vector: CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N - Weakness: CWE-94 — Improper Control of Generation of Code ('Code Injection'); also tagged CWE-78 (OS Command Injection) - Attack requirements: none — unauthenticated, remote, low complexity, no user interaction - Impact: arbitrary OS command execution on the host running the Floci JVM — full system compromise of that box - Exploited in the wild: no confirmed reports; a public PoC exists, which historically accelerates exploitation The vector is the maximum-severity shape: network, low complexity, zero privileges, total impact on confidentiality, integrity, and availability. There is no interaction gate and no privilege gate — the only gate is network reachability. Affected Versions - Floci 1.1.0 before 2.2.0 — every release in that range is affected - Fixed in: 2.2.0 (restricts the Velocity template engine) - Component: VtlTemplateEngine — the Velocity mapping-template renderer for MOCK integrations - Exposure: any Floci instance reachable over the network — developer laptops on shared networks, shared test servers, CI runners, and any deployment bound to 0.0.0.0 instead of localhost The dangerous misconception is "it's just a local dev tool." Dev tools run with developer privileges, on machines holding cloud credentials, SSH keys, and source code — and they are routinely left listening on shared or corporate networks. "Local" describes the intent, not the exposure. Technical Analysis From $util to Shell: The Classic Velocity Escalation Server-side template injection in Apache Velocity follows a well-worn escalation path. Velocity templates are meant to be presentation logic — $variable substitution and simple directives — but the engine historically exposes enough of the Java object graph to escape the sandbox. The $util object in a mapping template is the foothold: through it, the template can obtain a Class reference, and from there use reflection to load java.lang.Runtime and call getRuntime().exec(), or instantiate ProcessBuilder directly. Each step is "legitimate" template functionality; the chain as a whole is arbitrary command execution. Here is the part that should unsettle emulator authors: in a MOCK integration, the template is not smuggled in through a user profile field or a comment box — it is the integration definition itself. The attacker is using the product's documented feature exactly as designed. The vulnerability is not that Velocity can reach Runtime (that is a known, hard-to-fully-sandbox property of the engine); it is that an unauthenticated stranger is allowed to author integrations. The template engine is the weapon, but the missing authorization check is the unlocked armory door. An Identity Access Management Failure, Not Just a Template Bug Strip away the template details and CVE-2026-108598 is an identity access management failure. In real AWS API Gateway, creating a REST API and defining its integrations is a privileged operation gated by IAM policies — you prove who you are, and the policy decides what you may do. Floci emulates the API surface of API Gateway but emulated none of the authorization boundary: anyone who could reach the service could create APIs and write executable templates, with no identity presented and no policy evaluated. This is the recurring sin of developer emulators and local service mocks: they reproduce the functionality of the cloud service faithfully while silently dropping the security model. Every emulator, mock, and localstack-style tool in your stack deserves one hard question: which authorization checks did the emulation leave out, and who can reach the ports where those checks are missing? As a pentest finding, "emulator reachable without authentication" writes itself — the only work is checking which ones your target runs. Dev Tools With Server Privileges Consider where Floci actually runs. On a developer laptop, a compromise means the attacker's code executes alongside the developer's AWS credentials, SSH keys, and source checkouts — a straight path to cloud and code-infrastructure takeover. On a shared test server or CI runner, it means execution on a box that likely holds deployment tokens and pipeline secrets. Emulators are frequently started with permissive network bindings (0.0.0.0 for container access or team sharing) and then forgotten, and they rarely appear in asset inventories because "it's just a dev tool." The data-integrity angle is what incident responders will feel first. A MOCK integration's template controls what the fake API returns — which means a compromised Floci can silently serve manipulated responses to every developer and test suite pointed at it. Poison the mock and you poison the tests: passing builds against lying APIs, integration tests that validate attacker-shaped data, and a false sense of correctness that survives long after the compromise. Why This Matters Unauthenticated remote code execution on network-reachable infrastructure is the season's dominant pattern — a perimeter box owned without credentials, a gateway turned into a launchpad. Floci extends the pattern somewhere defenders rarely look: the development toolchain. The perimeter is no longer just the firewall and the VPN — it is every service listening on your laptop, your test server, and your CI network. What does vulnerable mean in the context of CVE-2026-108598? It means a tool you installed to pretend to be AWS can be turned into a real shell on your machine by anyone on your network, with no password and no phishing required. What is data integrity worth when a template can run shell commands? Nothing — once the mock server is owned, every "passing" test it serves is evidence manufactured by the attacker. Patch the emulator, then question everything it told you while it was exposed. Mitigation - Upgrade immediately to Floci 2.2.0 — the release restricts the Velocity template engine and closes the injection path - Kill the network exposure: bind Floci to localhost only; never run it on 0.0.0.0 on shared, corporate, or CI networks - Inventory every instance: search developer laptops, shared test servers, containers, and CI runners for Floci — un-inventoried dev tools are unpatched dev tools - Assume breach if it was exposed: any instance reachable from an untrusted network should be treated as compromised — rotate credentials and tokens that lived on that host, and rebuild rather than just patching - Distrust its recent answers: if the instance served MOCK responses while exposed, re-run affected test suites against a patched instance — a compromised mock can make failing code look green - No workaround short of the patch besides strict network isolation — restricting who can reach the service is the only mitigation on affected versions References - NVD: nvd.nist.gov - VulnCheck advisory: vulncheck.com - ThreatAft: threataft.com - Floci 2.2.0 release (fix): github.com/floci-io/floci/releases/tag/2.2.0 Report by Faizan Akhtar — The Cyber Security Researcher
@pooridev من برای لوکال از این استفاده میکنم floci-io/floci همه چی داره
想在本机跑一套免费 AWS 环境,又不想注册账号、不想碰付费套餐?Floci 真把这场景做出来了。☁️ 69 个核心服务一个不少,S3、SQS、Lambda、DynamoDB、RDS 全涵盖,监听本地 4566 端口,现有 SDK 和 CLI 工具接上就能用。 了解floci-io/floci t.co
Parity Suite 3.6 and a month of emulator fixes When I wrote up [3.0.0](/articles/parity-suite-300-release-notes) in August, Floci was a C on the board with 209 failing tests. By 3rd September the suite had grown to 1,251 tests and it was a D with 337. This morning's run has it failing one. That's the real news in this release, and none of it is mine. The suite barely grew. The emulators got better. The board The suite reached 1,251 tests on 3rd September, so that's the fairest place to measure from. It's at 1,266 now. | | 3rd September | 9th October | |---|---|---| | Floci | D, 337 failing | A, 1 failing | | LocalStack | B, 101 failing | A, 31 failing | | MiniStack | C, 220 failing | B, 84 failing | All three now pass every Tier 1 test, the core of DynamoDB that most applications rely on. Five weeks ago Floci failed 50 of those, MiniStack 28 and LocalStack 14. Floci didn't get there by doing less, either. Its coverage, the share of the suite it attempts rather than skips, went up from 95.1% to 99.4% over the same stretch. Its one remaining failure is an edge case. A transaction carries a value nested deeper than DynamoDB's 32-level limit, but only in a condition, so it never gets written. Most regions don't check its depth and go on to evaluate the condition. eu-west-2 and the two other regions that now validate transactions up front (more on that below) refuse the whole request. Floci does neither: it cancels the transaction. Most of LocalStack's 31 are PartiQL (21 of them), with the rest in exact error wording and limits. MiniStack's 84 are nearly all Tier 3, mostly exact error messages and limits. It's good to see the board being used for what I built it for. Floci's tests and pull requests cite it by name, and MiniStack's maintainers point contributors to it when the question of how close to real DynamoDB they are comes up. Thanks to both teams for that. AWS moved in the middle of a run 3.6.0 was tagged on 8th October and never published. While it was being measured, eu-west-2 changed how it validates transactions, so five tests failed against real DynamoDB and no board came out. It's part of the same rollout I [noticed back in June](/articles/dynamodb-changed-its-validation-errors), and it still hasn't finished. eu-west-2, eu-north-1 and ap-northeast-2 now check a transaction's request before running it. The other 30 regions don't yet, and a few of the changes are more than wording: the same request can succeed in one region and fail in another. For example, take an item that's already there, and a single SET that brings it up to exactly DynamoDB's 400KB limit (409,600 bytes), sent as an Update inside TransactWriteItems: // bigValue brings the item to 409,600 bytes await ddb.send(new TransactWriteItemsCommand({ TransactItems: [{ Update: { TableName: 'orders', Key: { pk: { S: 'Y' } }, UpdateExpression: 'SET p = :p', ExpressionAttributeValues: { ':p': bigValue }, }, }], })) In us-east-1 that succeeds and the item is stored at 409,600 bytes. In eu-west-2, since 8th October, it fails with ValidationException: Item size to update has exceeded the maximum allowed size. If your tests run against one region and production sits in another, the two can disagree on this request. It's another reason [you can't pin DynamoDB to one region](/articles/you-cant-pin-dynamodb-to-one-region). 3.6.1 is the fix. Those five tests accept either answer until the regions settle, and no engine loses a test over it. Pinning to the old answer would fail real DynamoDB in eu-west-2, which is the region the suite measures against, and pinning to the new one would fail every engine that matches the 30 regions still giving the old answer. Both answers are what DynamoDB actually does today, so both count. Smaller changes The board now sorts by grade, best first. It used to sort on divergence alone, which could put a target with a worse grade above a better one. No grade or figure changed. The suite grew by fifteen tests across 3.5.0 and 3.6, fourteen of them from exoego, covering size and nesting limits on batch and transaction writes. Coming next The suite's going to grow again soon. I've found some gaps in what it covers, and there are around 160 new tests waiting to go in, all checked against real DynamoDB first. I'll probably merge them early next week, and I'd expect most engines' figures to move when they do. The full notes are in the 3.6.1 release, the suite is at paritysuite/dynamodb-conformance, and the board is at paritysuite.org. If something looks wrong, an issue is welcome.