Safeguard
Security Guides•

What is Jenkins agent to controller access control and can you disable it?

Agent to controller access control limits what a Jenkins agent can ask the controller to do. Since 2.326 it is always on. Here is why that matters.

Safeguard Security Team
3 min read

Agent to controller access control limits what a Jenkins agent can make the controller do. Since Jenkins 2.326 it is always enabled and cannot be switched off. In 2.325 and earlier it was on by default but could be disabled, which the Jenkins documentation strongly advises against.

The problem it solves

An agent runs build steps, often code from many contributors. If a compromised or malicious build could use the agent connection to read files or run commands on the controller, one bad job would become control of the whole system. The access control layer treats agents as less trusted than the controller.

This fits the way the Jenkins node docs describe agents: they are "assumed to be unreliable." Agents are small Java client processes that connect to the controller, and they host tools directly or inside containers.

Version facts

Jenkins versionStatus
2.326 and laterAlways enabled, following the JEP-235 security changes
2.325 and earlierEnabled by default, can be turned off on the Security page

The documentation says it is strongly recommended not to disable the system. In older versions, administrators can selectively allow more access instead of disabling the whole thing.

Related hardening

Access control between agent and controller works best alongside these:

  1. Built-in node. Builds on the built-in node share the file system access of the Jenkins process, which the docs call inadvisable longer term. Set its executors to 0 under Manage Jenkins, then Nodes and Clouds, after you have agents or clouds configured.
  2. Separate OS user. If you only have one machine, run the agent as a separate OS user with no file system access to Jenkins home and no way to elevate permissions.
  3. One executor per node. The node docs call one executor per node the safest setting, and one per CPU core only for small tasks.
  4. Secrets on the command line. The Windows scheduler example in the docs shows an agent secret in plain text on the command line. Treat that as an example of what to avoid in shared environments, and restrict who can read task definitions.
  5. Job restrictions. The Job Restrictions plugin can limit which jobs run on the built-in node.

What to check on an old controller

  • Is the version at least 2.326? If not, plan an upgrade, since the setting may be off.
  • Does the Security page show any option that relaxes agent access?
  • Are builds running on the built-in node?
  • Do agents run as a user that can read Jenkins home?

Try it yourself

The demo shows a container image scan, a way to check what your build agents actually run.

Click through it at your own pace, or open it full screen.

Where Safeguard fits

Safeguard does asset discovery and scans container images and dependencies, which helps inventory build infrastructure. Try the free scan.

Quick check

Can I turn off agent to controller access control in current Jenkins?

No. It has been always enabled since 2.326.

Does a separate agent user help?

Yes. A separate OS user without access to Jenkins home limits what a build can read on the controller machine.

Sources

Last reviewed: 19 October 2026.

Never miss an update

Weekly insights on software supply chain security, delivered to your inbox.

Self-healing security runs on Safeguard.

Your first fix PR is minutes away.

No sales call required, even your agent can complete the purchase over MCP.