Awesome Object Capabilities and Capability Security
JavaScript
414
180 commits
updated Sep 20, 2026
Capability-based security enables the concise composition of powerful patterns of cooperation without vulnerability.
In 3 minutes:
In 15 minutes:
Or for a detailed explanation: What Are Capabilities? by Morningstar in 2017.
2025-09: Cap'n Web: a new RPC system for browsers and web servers
2024-04: We’ve added JavaScript-native RPC to Cloudflare Workers – Kenton Varda introduces a secure, ergonomic RPC mechanism built into the Workers platform, enabling structured, streamed, bidirectional communication between components with Cap’n Proto-style semantics and ocap-aligned design
2024-04: Why Workers environment variables contain live objects
2022-09: Introducing workerd: the Open Source Workers runtime
2021-10: Dynamic Process Isolation: Research by Cloudflare and TU Graz
2021-08: Durable Objects: Easy, Fast, Correct — Choose three
2020-07: Mitigating Spectre and Other Security Threats: The Cloudflare Workers Security Model
Magic Cap libraryfile:// URIs, while actual access is enforced through the Documents portal and its restricted FUSE mount, so authority does not depend on guessing /run/user/$UID/doc/... paths.
JavaScript
cloudflare/workerd: The JavaScript / Wasm runtime that powers Cloudflare Workers
Hardened JavaScript "Hardened JavaScript is a standards track mode for the JavaScript language for safe plugin systems and supply chain attack resistance. Hardening JavaScript improves a program’s integrity in the face of adversarial code in the same process."
61900529385d44LavaMoat/LavaMoat: tools for sandboxing your dependency graph
NextAuth.js — authentication for Next.js, including an Email Provider that issues short-lived “magic link” URLs as bearer capabilities.
C / C++
Scheme (guile, racket)
Spritely Goblins - "distributed object programming environment. Goblins provides an intuitive security model, automatic local transactions for locally synchronous operations, and an easy to use and efficient asynchronous programming interface for encapsulated objects which can live anywhere on the network. Its networking model abstracts away these details so the programmer can focus on object programming rather than protocol architecture."
2025-03: Spritely Goblins v0.15.1
Released
"a quality release focused on polish, fixing bugs in CapTP
GC, message handling in persistent vats, and netlayer
reconnection; also adds a timeout helper and improved
race* joiner"
2025-01: Spritely Goblins v0.15.0: Goblins in the
Browser
"Goblins code can now be compiled to WebAssembly and run in
the browser, with a WebSocket netlayer and goblin-chat
demo; includes major performance boosts"
2024-09: Spritely Goblins v0.14.0: libp2p and Improved
Persistence
"introduces a libp2p netlayer, cross-vat persistence using
^persistence-registry, self-referential actors with
#:self, and actor upgrade macros"
2024-05 Distributed System Daemons: More Than a Twinkle in Goblins' Eye — Spritely Institute "a port of the GNU Shepherd system layer to Guile Goblins — the first step in making Guix the object-capability operating system!"
2024-04: Spritely Goblins v0.13.0: Object Persistence and
Easier
IO
"introduces the Aurie persistence system for long-lived
objects, simplifies actor definition with define-actor,
and adds the ^io actor for asynchronous IO"
2024-05 Distributed System Daemons: More Than a Twinkle in Goblins' Eye — Spritely Institute "a port of the GNU Shepherd system layer to Guile Goblins — the first step in making Guix the object-capability operating system!"
2022-10 NLnet grant bootstraps OCapN protocol standardization effort
2021-07 Content Addressed Descriptors and Interfaces with Spritely Goblins paper "how to perform "conversational" programming in Spritely Goblins, or any other system which assumes a mutually suspicious network. ... The reason this system is able to be elegantly embedded in a network environment is its use of Spritely's implementation of CapTP."
2020-05-13 Spritely's NLNet grant: Interface Discovery for Distributed Systems -- DustyCloud Brainstorms
Shill: Shill is a shell scripting language designed to make it easy to follow the Principle of Least Privilege. It runs on FreeBSD and is developed in Racket.
Flask-Security-Too — security extension for Flask with token-based password reset and email confirmation using time-limited, signed URLs.
Network protocols, sans I/O supports object capability discipline by letting the caller handle network access.
Pony is an open-source, object-oriented, actor-model, capabilities-secure, high performance programming language.
Austral - a systems language with linear types and capability security
Newspeak is an object-capability programming platform that lets you develop code in your web browser. Like Self, Newspeak is message-based; all names are dynamically bound. However, like Smalltalk, Newspeak uses classes rather than prototypes. The current version of Newspeak runs on top of WASM.
Monte is a nascent dynamic programming language reminiscent of Python and E. It is based upon The Principle of Least Authority (POLA), which governs interactions between objects, and a capability-based object model, which grants certain essential safety guarantees to all objects.
Cadence is a smart contract language with resources (linear types) and capability security. Its static type system has direct support for object-capability security. For example, the facade pattern is natively supported, and the type system has special down-casting rules to express access control patterns.
genode is a novel OS architecture that is able to master the complexity of code and policy -- the most fundamental security problem shared by modern general-purpose operating systems -- by applying a strict organizational structure to all software components including device drivers, system services, and applications.
2025-11: Genode OS Framework release 25.11 – improves custom-kernel interactive performance, adds GPU-accelerated graphics on Intel Alder Lake, introduces USB-serial support, and enables seL4 on 64-bit ARM
2025-08: Genode OS Framework release 25.08 – redesigns the kernel scheduler for fairness and low latency, updates Linux-based PC drivers to 6.12, and expands dynamic scenarios for seL4 13.0
2025-04: Sculpt OS release 25.04 – introduces multi-monitor window management and display rotation, integrates Chromium WebEngine 112, and extends hardware support to Intel Meteor Lake and F&S i.MX8MP armStone boards
2025-02: Genode OS Framework release 25.02 – extends multi-monitor capabilities to window management and virtual machines, ports QEMU and Chromium WebEngine 112, boosts graphics performance via SIMD optimizations
2024-11: Genode OS Framework release 24.11 – multi-monitor display support and the Genode Applications book signal a maturity milestone for desktop use
2024-05: Genode OS Framework release 24.05 – Sculpt OS now runs on Genode’s custom kernel and gains GDB debugging support; USB stack redesigned
2020-06: Re-stacking the GUI stack – a deep architectural rethink of desktop graphics: Genode inverts the usual GUI-server/driver relationship so input and display drivers stay in control of policy-critical resources, shrinking the consequences of compromise in one of the OS's most attack-prone subsystems
2020-05-28 Genode OS Framework 20.05 with Capability-based security using seccomp on Linux, ...
2018-02: On-target package installation and deployment – introduces a package management model where untrusted tools like curl, libarchive, and GnuPG are used within tightly confined compartments; a ~1000-line download manager orchestrates deployment without expanding the TCB
Fuchsia is a real-time operating system in development by Google since Aug 2016. It's based on a microkernel, Zircon, with a capability security model.
2021-06 cr0 blog: A few thoughts on Fuchsia security Julien Tinnes. Sandboxing is trivial. In fact a new process with access to no capabilities
2026-01: Fuchsia F29 release notes – expands Component Framework support for SDK-exposed StorageAdmin and programmatic storage routing in Realm Builder, continuing Fuchsia’s explicit capability-routing model
2025-10: Fuchsia F28 release notes – enables a new HTTP/S manifest-driven OTA flow and continues migration from legacy driver interfaces to DFv2 and FIDL services
2025-04: Fuchsia F26 release notes – continues refinement of the component framework, emphasizing explicit capability routing, lifecycle control, and modular isolation between components
2025-01: Fuchsia F24 release notes – introduces improvements in diagnostics scoping and structured logging, reinforcing least-authority principles in observability tooling
2024-03: Fuchsia OS powers all Nest Hub devices – Fuchsia’s capability-based component framework is now deployed across all Nest Hub models, replacing the legacy Cast OS; each system component runs with only the capabilities it is explicitly granted, demonstrating ocap principles at scale in a mainstream consumer product
2020-11: Fuchsia Component Framework – Fuchsia’s core architectural model based on sandboxed components and explicit capability routing, offering a native implementation of capability-secure composition
2017-05-08 Google’s “Fuchsia” smartphone OS dumps Linux, has a wild new UI Ars Technica
seL4 is the world's first operating-system kernel with an end-to-end proof of implementation correctness and security enforcement; it is available as open source.
Abstract. We prove the enforcement of two high-level access control properties in the seL4 microkernel: integrity and authority confinement. Integrity provides an upper bound on write operations. Authority con- finement provides an upper bound on how authority may change. Apart from being a desirable security property in its own right, integrity can be used as a general framing property for the verification of user-level system composition. The proof is machine checked in Isabelle/HOL and the results hold via refinement for the C implementation of the kernel.
Capsicum Capsicum is a lightweight OS capability and sandbox framework that extends the POSIX API, providing several new OS primitives to support object-capability security on UNIX-like operating systems
libcasper service patterns such as cap_netcapsicum-rs gained libcasper(3) and cap_net(3) support and was being used by nfs-exporter and a TLS-enabled FTP server, showing current Rust adoptionsyslogd, rpcbind, tftpd, ntpd, and libarchiveSpectrum is a Linux-based operating system focused on security by compartmentalization, aiming to make isolated application environments easier to use and maintain.
systemd-sysupdate, showing ongoing work toward maintainable compartmentalized systemsKataOS - embeded platform that runs on top of seL4
CHERI (Capability Hardware Enhanced RISC Instructions) extends conventional processor Instruction-Set Architectures (ISAs) with architectural capabilities to enable fine-grained memory protection and highly scalable software compartmentalization. CHERI’s hybrid capability-system approach allows architectural capabilities to be integrated cleanly with contemporary RISC architectures and microarchitectures, as well as with MMU-based C/C++- language software stacks.
CHERI’s capabilities are unforgeable tokens of authority, which can be used to implement both explicit pointers (those declared in the language) and implied pointers (those used by the runtime and generated code) in C and C++. When used for C/C++ memory protection, CHERI directly mitigates a broad range of known vulnerability types and exploit techniques. Support for more scalable software compartmentalization facilitates software mitigation techniques such as sandboxing, which also defend against future (currently unknown) vulnerability classes and exploit techniques.
We have developed, evaluated, and demonstrated this approach through hardware-software prototypes, including multiple CPU prototypes, and a full software stack. This stack includes an adapted version of the Clang/LLVM compiler suite with support for capability-based C/C++, and a full UNIX-style OS (CheriBSD, based on FreeBSD) implementing spatial, referential, and (currently for userspace) non-stack temporal memory safety. Formal modeling and verification allow us to make strong claims about the security properties of CHERI-enabled architectures.
This report is a high-level introduction to CHERI. The report describes our architectural approach, CHERI’s key microarchitectural implications, our approach to formal modeling and proof, the CHERI software model, our software-stack prototypes, further reading, and potential areas of future research.
2025-06: Sandbox Your Program Using FreeBSD's Capsicum "Jake Freeland presents a practical BSDCan tutorial on applying Capsicum to real programs, covering capability mode, pre-opened resources, compartmentalization, and libcasper patterns such as cap_net"
2025-02: Goblins: The framework for your next project! "Jessica Tallon introduces Goblins, a Guile framework for building secure, fault-tolerant peer-to-peer applications using object capability security and the actor model"
2025-02: Spritely and a secure, collaborative, distributed future "Christine Lemmer-Webber outlines Spritely's mission to create decentralized infrastructure that empowers user autonomy and security"
2023-09: OS for Software Defined Vehicle all NIO’s production vehicles released since 2024-09 are running an seL4-based OS
2021-05: Attested TEEs for Transactional Workloads :: Sid Hussmann PADSEC 2021. We present a generic TEE toolkit applicable for many use-cases in finance, healthcare, and government. Gapfruit TEE embodies a microkernel operating system with capability-based security.
2020-12: Navigating the Attack Surface to achieve a *multiplicative* reduction in risk Mark Miller. 15min
2019-12: Making 'npm install' Safe - QCon New York "Kate Sills on security issues using NPM packages, the EventStream incident, and SES" as possible solutions to npm supply-chain risks.
2019-06: Higher-order Smart Contracts across Chains Agoric + Protocol Labs // - Mark Miller
2019-02-28: Delegation: The Missing Piece of Authorization talk by Tristan Slominski at the Austin Node.js meetup
2018-10: Opening Statement on SOSP 50th Anniversary Panel Mark Miller
2017-02: Designing with Capabilities - Scott Wlaschin at Domain-Driven Design Europe Conference
2016-06 Learn Object Capabilities by Douglas Crockford, part of Good Parts of JavaScript and the Web. Using the principle of least authority, Doug explains how the “actor model” can be applied to object oriented programming to create more secure software. He calls this application Object Capabilities.
2015-12: CloudABI - Pure capability-based security for UNIX
Ed Schouten, 32nd Chaos Communication Congress (32C3)
2013: Distributed Resilient Secure ECMAScript (Dr. SES) ESOP
Secure Distributed Programming with Object-capabilities in JavaScript
2012-03: Belay Demo 5min. Mark Lentczner, Security Team, Google
Passwords or Webkeys: Which is More Secure?
video by Marc Stiegler Feb 2012
Barth, Adam, Joel Weinberger, and Dawn Song.
Cross-Origin JavaScript Capability Leaks: Detection, Exploitation, and Defense. USENIX
security symposium. 2009.
Sargent, Will Security in Scala: Refined Types and Object Capabilities Scaladays NYC 2018.
2010-03 The Lazy Programmer's Guide to Secure Computing Google TechTalk by Marc Stiegler
2007-08 From Desktops to Donuts: Object-Caps Across Scales Google TechTalk by Marc Stiegler
2004 A PictureBook of Secure Cooperation Marc Stiegler
2002-05 Immunity from Viruses, Safety from Geeks Bearing Gifts Mark S. Miller
"This talk is centered on a demo of CapDesk, our capability-based distributed desktop and application installation/launching framework. CapDesk uses no passwords, no user group lists, no firewalls, yet supplies a computing world invulnerable to viruses and Trojan horses."
2018-11 POLA Would Have Prevented the Event-Stream Incident
Kate Sills, Agoric
2017-06 Capability-Based Network Communication for Capsicum/CloudABI April–June 2017 FreeBSD status report.
2017-05 What Are Capabilities? by Chip Morningstar (Hacker News discussion Jan 7, 2018)
2016-08 Welcoming all Python enthusiasts: CPython 3.6 for CloudABI! August 1, 2016 by Ed Schouten
2016-01: fun with Capper and OFX financial transaction fetching to cap-talk
2015-11 Objects as Secure Capabilities Joe Duffy
2009-03 Not One Click for Security Karp, Alan H.; Stiegler, Marc; Close, Tyler, HP Laboratories, HPL-2009-53 Conventional wisdom holds that security must negatively affect usability. We have developed SCoopFS (Simple Cooperative File Sharing) as a demonstration that need not be so. SCoopFS addresses the problem of sharing files, both with others and with ourselves across machines. Although SCoopFS provides server authentication, client authorization, and end-to-end encryption, the user never sees any of that. The user interface and underlying infrastructure are designed so that normal user acts of designation provide all the information needed to make the desired security decisions. While SCoopFS is a useful tool, it may be more important as a demonstration of the usability that comes from designing the infrastructure and user interaction together.
2009-02 ACLs don't Tyler Close, HP Laboratories The ACL model is unable to make correct access decisions for interactions involving more than two principals, since required information is not retained across message sends. Though this deficiency has long been documented in the published literature, it is not widely understood. This logic error in the ACL model is exploited by both the clickjacking and Cross-Site Request Forgery attacks that affect many Web applications
2002-06 DarpaBrowser: Final Report by Marc Stiegler and Mark Miller
The broad goal of this research was to assess whether capability-based security [Levy84] could achieve security goals that are unachievable with current traditional security technologies such as access control lists and firewalls. The specific goal of this research was to create an HTML browser that could use capability confinement on a collection of plug-replaceable, possibly malicious, rendering engines. In confining the renderer, the browser would ensure that a malicious renderer could do no harm either to the browser or to the underlying system.
See also Usable Security and Capabilities bibliography.
D. Devriese, Birkedal, and Piessens
Reasoning about Object Capabilities with Logical Relations and Effect Parametricity
1st IEEE European Symposium on Security and Privacy, Congress Center Saar, Saarbrücken, GERMANY, 2016.
2015 Clean Application Compartmentalization with SOAAP Khilan Gudka, Robert N. M. Watson, Jonathan Anderson, David Chisnall, Brooks Davis, Ben Laurie, Ilias Marinos, Peter G. Neumann, and Alex Richardson. ACM CCS 2015.
Gerwin Klein, June Andronick, Kevin Elphinstone, Toby Murray, Thomas Sewell, Rafal Kolanski and Gernot Heiser
Comprehensive formal verification of an OS microkernel
ACM Transactions on Computer Systems, Volume 32, Number 1, pp. 2:1-2:70, February, 2014
S. Clebsch and S. Drossopoulou
Fully concurrent garbage collection of actors on many-core machines
OOPSLA 2013
Mark S. Miller, Tom Van Cutsem, Bill Tulloh
Distributed Electronic Rights in JavaScript
ESOP'13 22nd European Symposium on Programming, Springer (2013)
Maffeis, Sergio, John C. Mitchell, and Ankur Taly. Object capabilities and isolation of untrusted web applications. In 2010 IEEE Symposium on Security and Privacy, pp. 125-140. IEEE, 2010.
2010 Capsicum: Practical Capabilities for UNIX Robert N. M. Watson, Jonathan Anderson, Ben Laurie, and Kris Kennaway. USENIX Security 2010.
Barth, Adam, Joel Weinberger, and Dawn Song.
Cross-Origin JavaScript Capability Leaks: Detection, Exploitation, and Defense. USENIX
security symposium. 2009.
Close, T.: Web-key: Mashing with permission. In: W2SP’08. (2008)
Miller MS
Robust composition: towards a unified approach to access control and concurrency control
Ph.D. Thesis, Johns Hopkins University; 2006.
When separately written programs are composed so that they may cooperate, they may instead destructively interfere in unanticipated ways. These hazards limit the scale and functionality of the software systems we can successfully compose. This dissertation presents a framework for enabling those interactions between components needed for the cooperation we intend, while minimizing the hazards of destructive interference.
Great progress on the composition problem has been made within the object paradigm, chiefly in the context of sequential, single-machine programming among benign components. We show how to extend this success to support robust composition of concurrent and potentially malicious components distributed over potentially malicious machines. We present E, a distributed, persistent, secure programming language, and CapDesk, a virus-safe desktop built in E, as embodiments of the techniques we explain.
Miller, Mark S., E. Dean Tribble, and Jonathan Shapiro. Concurrency among strangers. TGC. Vol. 5. 2005.
Mark S. Miller, Chip Morningstar, Bill Frantz
Capability-based Financial Instruments
Proc. Financial Cryptography 2000, Springer-Verlag, Anguila, BWI,
pp. 349-378.
Every novel cooperative arrangement of mutually suspicious parties interacting electronically — every smart contract — effectively requires a new cryptographic protocol. However, if every new contract requires new cryptographic protocol design, our dreams of cryptographically enabled electronic commerce would be unreachable. Cryptographic protocol design is too hard and expensive, given our unlimited need for new contracts. Just as the digital logic gate abstraction allows digital circuit designers to create large analog circuits without doing analog circuit design, we present cryptographic capabilities as an abstraction allowing a similar economy of engineering effort in creating smart contracts. We explain the E system, which embodies these principles, and show a covered-call-option as a smart contract written in a simple security formalism independent of cryptography, but automatically implemented as a cryptographic protocol coordinating five mutually suspicious parties
JavaScript
60.0%
Python
40.0%
Awesome Object Capabilities and Capability Security
JavaScript
414
180 commits
updated Sep 20, 2026
Capability-based security enables the concise composition of powerful patterns of cooperation without vulnerability.
In 3 minutes:
In 15 minutes:
Or for a detailed explanation: What Are Capabilities? by Morningstar in 2017.
2025-09: Cap'n Web: a new RPC system for browsers and web servers
2024-04: We’ve added JavaScript-native RPC to Cloudflare Workers – Kenton Varda introduces a secure, ergonomic RPC mechanism built into the Workers platform, enabling structured, streamed, bidirectional communication between components with Cap’n Proto-style semantics and ocap-aligned design
2024-04: Why Workers environment variables contain live objects
2022-09: Introducing workerd: the Open Source Workers runtime
2021-10: Dynamic Process Isolation: Research by Cloudflare and TU Graz
2021-08: Durable Objects: Easy, Fast, Correct — Choose three
2020-07: Mitigating Spectre and Other Security Threats: The Cloudflare Workers Security Model
Magic Cap libraryfile:// URIs, while actual access is enforced through the Documents portal and its restricted FUSE mount, so authority does not depend on guessing /run/user/$UID/doc/... paths.
JavaScript
cloudflare/workerd: The JavaScript / Wasm runtime that powers Cloudflare Workers
Hardened JavaScript "Hardened JavaScript is a standards track mode for the JavaScript language for safe plugin systems and supply chain attack resistance. Hardening JavaScript improves a program’s integrity in the face of adversarial code in the same process."
61900529385d44LavaMoat/LavaMoat: tools for sandboxing your dependency graph
NextAuth.js — authentication for Next.js, including an Email Provider that issues short-lived “magic link” URLs as bearer capabilities.
C / C++
Scheme (guile, racket)
Spritely Goblins - "distributed object programming environment. Goblins provides an intuitive security model, automatic local transactions for locally synchronous operations, and an easy to use and efficient asynchronous programming interface for encapsulated objects which can live anywhere on the network. Its networking model abstracts away these details so the programmer can focus on object programming rather than protocol architecture."
2025-03: Spritely Goblins v0.15.1
Released
"a quality release focused on polish, fixing bugs in CapTP
GC, message handling in persistent vats, and netlayer
reconnection; also adds a timeout helper and improved
race* joiner"
2025-01: Spritely Goblins v0.15.0: Goblins in the
Browser
"Goblins code can now be compiled to WebAssembly and run in
the browser, with a WebSocket netlayer and goblin-chat
demo; includes major performance boosts"
2024-09: Spritely Goblins v0.14.0: libp2p and Improved
Persistence
"introduces a libp2p netlayer, cross-vat persistence using
^persistence-registry, self-referential actors with
#:self, and actor upgrade macros"
2024-05 Distributed System Daemons: More Than a Twinkle in Goblins' Eye — Spritely Institute "a port of the GNU Shepherd system layer to Guile Goblins — the first step in making Guix the object-capability operating system!"
2024-04: Spritely Goblins v0.13.0: Object Persistence and
Easier
IO
"introduces the Aurie persistence system for long-lived
objects, simplifies actor definition with define-actor,
and adds the ^io actor for asynchronous IO"
2024-05 Distributed System Daemons: More Than a Twinkle in Goblins' Eye — Spritely Institute "a port of the GNU Shepherd system layer to Guile Goblins — the first step in making Guix the object-capability operating system!"
2022-10 NLnet grant bootstraps OCapN protocol standardization effort
2021-07 Content Addressed Descriptors and Interfaces with Spritely Goblins paper "how to perform "conversational" programming in Spritely Goblins, or any other system which assumes a mutually suspicious network. ... The reason this system is able to be elegantly embedded in a network environment is its use of Spritely's implementation of CapTP."
2020-05-13 Spritely's NLNet grant: Interface Discovery for Distributed Systems -- DustyCloud Brainstorms
Shill: Shill is a shell scripting language designed to make it easy to follow the Principle of Least Privilege. It runs on FreeBSD and is developed in Racket.
Flask-Security-Too — security extension for Flask with token-based password reset and email confirmation using time-limited, signed URLs.
Network protocols, sans I/O supports object capability discipline by letting the caller handle network access.
Pony is an open-source, object-oriented, actor-model, capabilities-secure, high performance programming language.
Austral - a systems language with linear types and capability security
Newspeak is an object-capability programming platform that lets you develop code in your web browser. Like Self, Newspeak is message-based; all names are dynamically bound. However, like Smalltalk, Newspeak uses classes rather than prototypes. The current version of Newspeak runs on top of WASM.
Monte is a nascent dynamic programming language reminiscent of Python and E. It is based upon The Principle of Least Authority (POLA), which governs interactions between objects, and a capability-based object model, which grants certain essential safety guarantees to all objects.
Cadence is a smart contract language with resources (linear types) and capability security. Its static type system has direct support for object-capability security. For example, the facade pattern is natively supported, and the type system has special down-casting rules to express access control patterns.
genode is a novel OS architecture that is able to master the complexity of code and policy -- the most fundamental security problem shared by modern general-purpose operating systems -- by applying a strict organizational structure to all software components including device drivers, system services, and applications.
2025-11: Genode OS Framework release 25.11 – improves custom-kernel interactive performance, adds GPU-accelerated graphics on Intel Alder Lake, introduces USB-serial support, and enables seL4 on 64-bit ARM
2025-08: Genode OS Framework release 25.08 – redesigns the kernel scheduler for fairness and low latency, updates Linux-based PC drivers to 6.12, and expands dynamic scenarios for seL4 13.0
2025-04: Sculpt OS release 25.04 – introduces multi-monitor window management and display rotation, integrates Chromium WebEngine 112, and extends hardware support to Intel Meteor Lake and F&S i.MX8MP armStone boards
2025-02: Genode OS Framework release 25.02 – extends multi-monitor capabilities to window management and virtual machines, ports QEMU and Chromium WebEngine 112, boosts graphics performance via SIMD optimizations
2024-11: Genode OS Framework release 24.11 – multi-monitor display support and the Genode Applications book signal a maturity milestone for desktop use
2024-05: Genode OS Framework release 24.05 – Sculpt OS now runs on Genode’s custom kernel and gains GDB debugging support; USB stack redesigned
2020-06: Re-stacking the GUI stack – a deep architectural rethink of desktop graphics: Genode inverts the usual GUI-server/driver relationship so input and display drivers stay in control of policy-critical resources, shrinking the consequences of compromise in one of the OS's most attack-prone subsystems
2020-05-28 Genode OS Framework 20.05 with Capability-based security using seccomp on Linux, ...
2018-02: On-target package installation and deployment – introduces a package management model where untrusted tools like curl, libarchive, and GnuPG are used within tightly confined compartments; a ~1000-line download manager orchestrates deployment without expanding the TCB
Fuchsia is a real-time operating system in development by Google since Aug 2016. It's based on a microkernel, Zircon, with a capability security model.
2021-06 cr0 blog: A few thoughts on Fuchsia security Julien Tinnes. Sandboxing is trivial. In fact a new process with access to no capabilities
2026-01: Fuchsia F29 release notes – expands Component Framework support for SDK-exposed StorageAdmin and programmatic storage routing in Realm Builder, continuing Fuchsia’s explicit capability-routing model
2025-10: Fuchsia F28 release notes – enables a new HTTP/S manifest-driven OTA flow and continues migration from legacy driver interfaces to DFv2 and FIDL services
2025-04: Fuchsia F26 release notes – continues refinement of the component framework, emphasizing explicit capability routing, lifecycle control, and modular isolation between components
2025-01: Fuchsia F24 release notes – introduces improvements in diagnostics scoping and structured logging, reinforcing least-authority principles in observability tooling
2024-03: Fuchsia OS powers all Nest Hub devices – Fuchsia’s capability-based component framework is now deployed across all Nest Hub models, replacing the legacy Cast OS; each system component runs with only the capabilities it is explicitly granted, demonstrating ocap principles at scale in a mainstream consumer product
2020-11: Fuchsia Component Framework – Fuchsia’s core architectural model based on sandboxed components and explicit capability routing, offering a native implementation of capability-secure composition
2017-05-08 Google’s “Fuchsia” smartphone OS dumps Linux, has a wild new UI Ars Technica
seL4 is the world's first operating-system kernel with an end-to-end proof of implementation correctness and security enforcement; it is available as open source.
Abstract. We prove the enforcement of two high-level access control properties in the seL4 microkernel: integrity and authority confinement. Integrity provides an upper bound on write operations. Authority con- finement provides an upper bound on how authority may change. Apart from being a desirable security property in its own right, integrity can be used as a general framing property for the verification of user-level system composition. The proof is machine checked in Isabelle/HOL and the results hold via refinement for the C implementation of the kernel.
Capsicum Capsicum is a lightweight OS capability and sandbox framework that extends the POSIX API, providing several new OS primitives to support object-capability security on UNIX-like operating systems
libcasper service patterns such as cap_netcapsicum-rs gained libcasper(3) and cap_net(3) support and was being used by nfs-exporter and a TLS-enabled FTP server, showing current Rust adoptionsyslogd, rpcbind, tftpd, ntpd, and libarchiveSpectrum is a Linux-based operating system focused on security by compartmentalization, aiming to make isolated application environments easier to use and maintain.
systemd-sysupdate, showing ongoing work toward maintainable compartmentalized systemsKataOS - embeded platform that runs on top of seL4
CHERI (Capability Hardware Enhanced RISC Instructions) extends conventional processor Instruction-Set Architectures (ISAs) with architectural capabilities to enable fine-grained memory protection and highly scalable software compartmentalization. CHERI’s hybrid capability-system approach allows architectural capabilities to be integrated cleanly with contemporary RISC architectures and microarchitectures, as well as with MMU-based C/C++- language software stacks.
CHERI’s capabilities are unforgeable tokens of authority, which can be used to implement both explicit pointers (those declared in the language) and implied pointers (those used by the runtime and generated code) in C and C++. When used for C/C++ memory protection, CHERI directly mitigates a broad range of known vulnerability types and exploit techniques. Support for more scalable software compartmentalization facilitates software mitigation techniques such as sandboxing, which also defend against future (currently unknown) vulnerability classes and exploit techniques.
We have developed, evaluated, and demonstrated this approach through hardware-software prototypes, including multiple CPU prototypes, and a full software stack. This stack includes an adapted version of the Clang/LLVM compiler suite with support for capability-based C/C++, and a full UNIX-style OS (CheriBSD, based on FreeBSD) implementing spatial, referential, and (currently for userspace) non-stack temporal memory safety. Formal modeling and verification allow us to make strong claims about the security properties of CHERI-enabled architectures.
This report is a high-level introduction to CHERI. The report describes our architectural approach, CHERI’s key microarchitectural implications, our approach to formal modeling and proof, the CHERI software model, our software-stack prototypes, further reading, and potential areas of future research.
2025-06: Sandbox Your Program Using FreeBSD's Capsicum "Jake Freeland presents a practical BSDCan tutorial on applying Capsicum to real programs, covering capability mode, pre-opened resources, compartmentalization, and libcasper patterns such as cap_net"
2025-02: Goblins: The framework for your next project! "Jessica Tallon introduces Goblins, a Guile framework for building secure, fault-tolerant peer-to-peer applications using object capability security and the actor model"
2025-02: Spritely and a secure, collaborative, distributed future "Christine Lemmer-Webber outlines Spritely's mission to create decentralized infrastructure that empowers user autonomy and security"
2023-09: OS for Software Defined Vehicle all NIO’s production vehicles released since 2024-09 are running an seL4-based OS
2021-05: Attested TEEs for Transactional Workloads :: Sid Hussmann PADSEC 2021. We present a generic TEE toolkit applicable for many use-cases in finance, healthcare, and government. Gapfruit TEE embodies a microkernel operating system with capability-based security.
2020-12: Navigating the Attack Surface to achieve a *multiplicative* reduction in risk Mark Miller. 15min
2019-12: Making 'npm install' Safe - QCon New York "Kate Sills on security issues using NPM packages, the EventStream incident, and SES" as possible solutions to npm supply-chain risks.
2019-06: Higher-order Smart Contracts across Chains Agoric + Protocol Labs // - Mark Miller
2019-02-28: Delegation: The Missing Piece of Authorization talk by Tristan Slominski at the Austin Node.js meetup
2018-10: Opening Statement on SOSP 50th Anniversary Panel Mark Miller
2017-02: Designing with Capabilities - Scott Wlaschin at Domain-Driven Design Europe Conference
2016-06 Learn Object Capabilities by Douglas Crockford, part of Good Parts of JavaScript and the Web. Using the principle of least authority, Doug explains how the “actor model” can be applied to object oriented programming to create more secure software. He calls this application Object Capabilities.
2015-12: CloudABI - Pure capability-based security for UNIX
Ed Schouten, 32nd Chaos Communication Congress (32C3)
2013: Distributed Resilient Secure ECMAScript (Dr. SES) ESOP
Secure Distributed Programming with Object-capabilities in JavaScript
2012-03: Belay Demo 5min. Mark Lentczner, Security Team, Google
Passwords or Webkeys: Which is More Secure?
video by Marc Stiegler Feb 2012
Barth, Adam, Joel Weinberger, and Dawn Song.
Cross-Origin JavaScript Capability Leaks: Detection, Exploitation, and Defense. USENIX
security symposium. 2009.
Sargent, Will Security in Scala: Refined Types and Object Capabilities Scaladays NYC 2018.
2010-03 The Lazy Programmer's Guide to Secure Computing Google TechTalk by Marc Stiegler
2007-08 From Desktops to Donuts: Object-Caps Across Scales Google TechTalk by Marc Stiegler
2004 A PictureBook of Secure Cooperation Marc Stiegler
2002-05 Immunity from Viruses, Safety from Geeks Bearing Gifts Mark S. Miller
"This talk is centered on a demo of CapDesk, our capability-based distributed desktop and application installation/launching framework. CapDesk uses no passwords, no user group lists, no firewalls, yet supplies a computing world invulnerable to viruses and Trojan horses."
2018-11 POLA Would Have Prevented the Event-Stream Incident
Kate Sills, Agoric
2017-06 Capability-Based Network Communication for Capsicum/CloudABI April–June 2017 FreeBSD status report.
2017-05 What Are Capabilities? by Chip Morningstar (Hacker News discussion Jan 7, 2018)
2016-08 Welcoming all Python enthusiasts: CPython 3.6 for CloudABI! August 1, 2016 by Ed Schouten
2016-01: fun with Capper and OFX financial transaction fetching to cap-talk
2015-11 Objects as Secure Capabilities Joe Duffy
2009-03 Not One Click for Security Karp, Alan H.; Stiegler, Marc; Close, Tyler, HP Laboratories, HPL-2009-53 Conventional wisdom holds that security must negatively affect usability. We have developed SCoopFS (Simple Cooperative File Sharing) as a demonstration that need not be so. SCoopFS addresses the problem of sharing files, both with others and with ourselves across machines. Although SCoopFS provides server authentication, client authorization, and end-to-end encryption, the user never sees any of that. The user interface and underlying infrastructure are designed so that normal user acts of designation provide all the information needed to make the desired security decisions. While SCoopFS is a useful tool, it may be more important as a demonstration of the usability that comes from designing the infrastructure and user interaction together.
2009-02 ACLs don't Tyler Close, HP Laboratories The ACL model is unable to make correct access decisions for interactions involving more than two principals, since required information is not retained across message sends. Though this deficiency has long been documented in the published literature, it is not widely understood. This logic error in the ACL model is exploited by both the clickjacking and Cross-Site Request Forgery attacks that affect many Web applications
2002-06 DarpaBrowser: Final Report by Marc Stiegler and Mark Miller
The broad goal of this research was to assess whether capability-based security [Levy84] could achieve security goals that are unachievable with current traditional security technologies such as access control lists and firewalls. The specific goal of this research was to create an HTML browser that could use capability confinement on a collection of plug-replaceable, possibly malicious, rendering engines. In confining the renderer, the browser would ensure that a malicious renderer could do no harm either to the browser or to the underlying system.
See also Usable Security and Capabilities bibliography.
D. Devriese, Birkedal, and Piessens
Reasoning about Object Capabilities with Logical Relations and Effect Parametricity
1st IEEE European Symposium on Security and Privacy, Congress Center Saar, Saarbrücken, GERMANY, 2016.
2015 Clean Application Compartmentalization with SOAAP Khilan Gudka, Robert N. M. Watson, Jonathan Anderson, David Chisnall, Brooks Davis, Ben Laurie, Ilias Marinos, Peter G. Neumann, and Alex Richardson. ACM CCS 2015.
Gerwin Klein, June Andronick, Kevin Elphinstone, Toby Murray, Thomas Sewell, Rafal Kolanski and Gernot Heiser
Comprehensive formal verification of an OS microkernel
ACM Transactions on Computer Systems, Volume 32, Number 1, pp. 2:1-2:70, February, 2014
S. Clebsch and S. Drossopoulou
Fully concurrent garbage collection of actors on many-core machines
OOPSLA 2013
Mark S. Miller, Tom Van Cutsem, Bill Tulloh
Distributed Electronic Rights in JavaScript
ESOP'13 22nd European Symposium on Programming, Springer (2013)
Maffeis, Sergio, John C. Mitchell, and Ankur Taly. Object capabilities and isolation of untrusted web applications. In 2010 IEEE Symposium on Security and Privacy, pp. 125-140. IEEE, 2010.
2010 Capsicum: Practical Capabilities for UNIX Robert N. M. Watson, Jonathan Anderson, Ben Laurie, and Kris Kennaway. USENIX Security 2010.
Barth, Adam, Joel Weinberger, and Dawn Song.
Cross-Origin JavaScript Capability Leaks: Detection, Exploitation, and Defense. USENIX
security symposium. 2009.
Close, T.: Web-key: Mashing with permission. In: W2SP’08. (2008)
Miller MS
Robust composition: towards a unified approach to access control and concurrency control
Ph.D. Thesis, Johns Hopkins University; 2006.
When separately written programs are composed so that they may cooperate, they may instead destructively interfere in unanticipated ways. These hazards limit the scale and functionality of the software systems we can successfully compose. This dissertation presents a framework for enabling those interactions between components needed for the cooperation we intend, while minimizing the hazards of destructive interference.
Great progress on the composition problem has been made within the object paradigm, chiefly in the context of sequential, single-machine programming among benign components. We show how to extend this success to support robust composition of concurrent and potentially malicious components distributed over potentially malicious machines. We present E, a distributed, persistent, secure programming language, and CapDesk, a virus-safe desktop built in E, as embodiments of the techniques we explain.
Miller, Mark S., E. Dean Tribble, and Jonathan Shapiro. Concurrency among strangers. TGC. Vol. 5. 2005.
Mark S. Miller, Chip Morningstar, Bill Frantz
Capability-based Financial Instruments
Proc. Financial Cryptography 2000, Springer-Verlag, Anguila, BWI,
pp. 349-378.
Every novel cooperative arrangement of mutually suspicious parties interacting electronically — every smart contract — effectively requires a new cryptographic protocol. However, if every new contract requires new cryptographic protocol design, our dreams of cryptographically enabled electronic commerce would be unreachable. Cryptographic protocol design is too hard and expensive, given our unlimited need for new contracts. Just as the digital logic gate abstraction allows digital circuit designers to create large analog circuits without doing analog circuit design, we present cryptographic capabilities as an abstraction allowing a similar economy of engineering effort in creating smart contracts. We explain the E system, which embodies these principles, and show a covered-call-option as a smart contract written in a simple security formalism independent of cryptography, but automatically implemented as a cryptographic protocol coordinating five mutually suspicious parties
JavaScript
60.0%
Python
40.0%