<?xml version='1.0' encoding='UTF-8'?><rss version='2.0'><channel><title>GitHub security watch</title><link>https://exypte.github.io/github-security-watch/</link><description>Nightly digest of GitHub Changelog and Docs changes about Actions and security.</description><item><title>GitHub security watch — 2026-10-21</title><link>https://exypte.github.io/github-security-watch/reports/2026-10-21.html</link><guid>https://exypte.github.io/github-security-watch/reports/2026-10-21.html</guid><pubDate>Wed, 21 Oct 2026 08:05:18 +0000</pubDate><description>&lt;h3&gt;TL;DR&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Deadline: November 12, 2026.&lt;/strong&gt; The &lt;code&gt;business&lt;/code&gt; field in secret scanning audit log events will switch from the enterprise display name to the enterprise slug. Update any integrations that filter on it. (&lt;a href=&quot;https://github.blog/changelog/2026-10-20-updates-to-github-secret-scanning&quot;&gt;source&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;GitHub package firewall is in public preview&lt;/strong&gt; for GitHub Enterprise Cloud, including data residency. It inspects npm metadata requests and package downloads from Actions runners and coding agents, and blocks malicious ones before they install. (&lt;a href=&quot;https://github.blog/changelog/2026-10-20-github-package-firewall-in-public-preview&quot;&gt;source&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;You can now migrate all branch protection rules in a repository to rulesets in one action.&lt;/strong&gt; (&lt;a href=&quot;https://github.blog/changelog/2026-10-20-bulk-migrate-branch-protections-to-rulesets-for-a-repository&quot;&gt;source&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;The package firewall setup docs now use the &lt;code&gt;package-firewall.githubapp.com&lt;/code&gt; host&lt;/strong&gt; instead of &lt;code&gt;package-firewall.github.com&lt;/code&gt;. (&lt;a href=&quot;https://github.com/github/docs/commit/1054b782080575b8363b931cb8e30315856204ae&quot;&gt;source&lt;/a&gt;)&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Action required&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Secret scanning audit log &lt;code&gt;business&lt;/code&gt; field changes on November 12, 2026.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Affected events:&lt;/strong&gt; &lt;code&gt;secret_scanning_alert.*&lt;/code&gt; and &lt;code&gt;secret_scanning_push_protection.bypass&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Change:&lt;/strong&gt; the &lt;code&gt;business&lt;/code&gt; field will contain the enterprise slug instead of the display name. It stays a string.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Unchanged:&lt;/strong&gt; event names and &lt;code&gt;business_id&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;What to do before rollout:&lt;/strong&gt; update SIEM rules and automations that filter by display name. Either accept both formats or switch to &lt;code&gt;business_id&lt;/code&gt;. (&lt;a href=&quot;https://github.blog/changelog/2026-10-20-updates-to-github-secret-scanning&quot;&gt;source&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Package firewall early adopters: check your registry host.&lt;/strong&gt; The setup docs now show &lt;code&gt;https://package-firewall.githubapp.com/npm/enterprises/ENTERPRISE&lt;/code&gt; instead of &lt;code&gt;package-firewall.github.com&lt;/code&gt;, both for &lt;code&gt;.npmrc&lt;/code&gt; and for &lt;code&gt;npm config&lt;/code&gt;. If you configured endpoints from an earlier version of the docs, confirm they match the current guidance. (&lt;a href=&quot;https://github.com/github/docs/commit/1054b782080575b8363b931cb8e30315856204ae&quot;&gt;commit&lt;/a&gt;, &lt;a href=&quot;https://docs.github.com/en/code-security/how-tos/secure-your-supply-chain/secure-your-dependencies/protecting-endpoints-with-package-firewall&quot;&gt;doc&lt;/a&gt;)&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Security improvements&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Package firewall (public preview)&lt;/strong&gt; (&lt;a href=&quot;https://github.blog/changelog/2026-10-20-github-package-firewall-in-public-preview&quot;&gt;source&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;What it does:&lt;/strong&gt; acts as a proxy between endpoints (Actions runners, coding agents) and upstream registries. It targets install-time attacks that harvest credentials on CI/CD hosts.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Policy controls:&lt;/strong&gt;&lt;ul&gt;
&lt;li&gt;a configurable cooldown period&lt;/li&gt;
&lt;li&gt;GitHub Advisory Database checks for malware and vulnerabilities&lt;/li&gt;
&lt;li&gt;supply-chain checks such as attestation downgrades&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;False positives:&lt;/strong&gt; users can request an exception through a workflow similar to other GitHub Advanced Security features.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Limitations:&lt;/strong&gt; npm only for now. Endpoints must be explicitly configured to route through the firewall.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Cost:&lt;/strong&gt; free during preview. At general availability it will be billed on metered usage, similar to Actions.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Secret scanning updates&lt;/strong&gt; (&lt;a href=&quot;https://github.blog/changelog/2026-10-20-updates-to-github-secret-scanning&quot;&gt;source&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Base64-encoded tokens:&lt;/strong&gt; the revocation action (public preview) now automatically decodes Base64-encoded PATs (classic and fine-grained), OAuth tokens, and GitHub App user access tokens. This applies to private and internal repos on github.com.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Custom patterns:&lt;/strong&gt; open alerts now stay open when a rescan still matches an edited custom pattern, instead of closing and reopening.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Dismissal-request webhooks:&lt;/strong&gt; payloads now include &lt;code&gt;exemption_request.number&lt;/code&gt;, so you can correlate requests across integrations.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Fixes:&lt;/strong&gt;&lt;ul&gt;
&lt;li&gt;Bypass-request API and webhook payloads no longer have empty secret-type and location details for command-line pushes.&lt;/li&gt;
&lt;li&gt;Delegated bypass no longer fails pushes or returns 500 errors because of organization-role reviewer entries.&lt;/li&gt;
&lt;li&gt;The custom pattern API now returns 422 instead of 500 for invalid input.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Bulk migration to rulesets&lt;/strong&gt; (&lt;a href=&quot;https://github.blog/changelog/2026-10-20-bulk-migrate-branch-protections-to-rulesets-for-a-repository&quot;&gt;source&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Where:&lt;/strong&gt; Settings → Rulesets → &lt;strong&gt;Import branch protection rules&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Before you confirm,&lt;/strong&gt; the review dialog lets you:&lt;ul&gt;
&lt;li&gt;preview the rulesets that will be created&lt;/li&gt;
&lt;li&gt;see which rules an existing ruleset already covers&lt;/li&gt;
&lt;li&gt;choose the enforcement status (Active, Evaluate, or Disabled)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Afterwards,&lt;/strong&gt; you choose whether to keep or delete the original rules.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Tip:&lt;/strong&gt; create rulesets in &lt;strong&gt;Evaluate&lt;/strong&gt; first to roll out safely.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Dependabot alerts REST API&lt;/strong&gt; (&lt;a href=&quot;https://github.blog/changelog/2026-10-20-dependabot-alerts-rest-api-now-includes-dependency-versions&quot;&gt;source&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;New field:&lt;/strong&gt; &lt;code&gt;dependency.version_requirement&lt;/code&gt; gives the recorded version or constraint in your repo.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Where it appears:&lt;/strong&gt; alert endpoints and &lt;code&gt;dependabot_alert&lt;/code&gt; webhooks.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Caveats:&lt;/strong&gt; it may be &lt;code&gt;null&lt;/code&gt;, may show only one of several vulnerable versions, and long constraints may be truncated.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Availability:&lt;/strong&gt; coming to GitHub Enterprise Server 3.24.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Dependabot package manager support:&lt;/strong&gt; Dependabot now supports npm 12, pnpm 11 and 12, and Bun 1.4. (&lt;a href=&quot;https://github.blog/changelog/2026-10-20-dependabot-now-supports-npm-12-pnpm-11-and-12-and-bun-1-4&quot;&gt;source&lt;/a&gt;)&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Docs changes worth reading&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://docs.github.com/en/code-security/how-tos/secure-your-supply-chain/secure-your-dependencies/protecting-endpoints-with-package-firewall&quot;&gt;Protecting endpoints with package firewall&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;The npm configuration examples now use the &lt;code&gt;package-firewall.githubapp.com&lt;/code&gt; host. The commit title describes this as a revert.&lt;/li&gt;
&lt;li&gt;The Artifactory remote-repository URL step was also edited, but the provided diff is truncated, so the final value isn&#x27;t visible here. (&lt;a href=&quot;https://github.com/github/docs/commit/1054b782080575b8363b931cb8e30315856204ae&quot;&gt;commit&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://docs.github.com/en/code-security/reference/code-scanning/codeql/codeql-cli-manual/generate-overlay-changes&quot;&gt;CodeQL CLI &lt;code&gt;generate overlay-changes&lt;/code&gt;&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;The intro now gives the command&#x27;s full purpose: it generates a file for the &lt;code&gt;--overlay-changes&lt;/code&gt; option of &lt;code&gt;codeql database create&lt;/code&gt; when extracting an overlay database. (&lt;a href=&quot;https://github.com/github/docs/commit/3345e43fa2590df66258d63f384a3c0529aec516&quot;&gt;commit&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Skipped as non-substantive:&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;link updates in the &lt;a href=&quot;https://github.com/github/docs/commit/4dc0b8276c24e2e24fe45b1bde0747c5da3cce10&quot;&gt;MCP push-protection docs&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;--model-packs&lt;/code&gt; heading formatting fixes in the CodeQL CLI manual (&lt;a href=&quot;https://github.com/github/docs/commit/e06ee0f6cd13bb5b166bda8fe51ac91d74887ce8&quot;&gt;commit&lt;/a&gt;)&lt;/li&gt;
&lt;/ul&gt;</description></item></channel></rss>
