Security advisory: critical PHP and Node.js vulnerabilities are being exploited in the wild. What you need to do →
All months

Radar · 2023-04

April 2023

A Chrome V8 type confusion is exploited in the wild, PaperCut print servers are hijacked through an authentication bypass, Go's html/template starts refusing actions inside JavaScript template literals, SvelteKit's CSRF protection is bypassed twice in three days, the first PSPF Direction restricts TikTok on government devices and npm packages gain cryptographic proof of where they were built.

AI platform and models

Sections
  • fyi AWS

    Amazon Bedrock enters limited preview — aws.amazon.com

    Announced 13 April 2023 as a managed service offering API access to third-party foundation models. The launch providers were AI21 Labs with the Jurassic-2 family, Anthropic with Claude, Stability AI with Stable Diffusion, and Amazon's own new Titan models — a generative text model for summarisation, generation, question answering and classification, plus an embeddings model for personalisation and semantic search. AWS emphasised private customisation from as few as twenty examples, with customer data staying in the customer's VPC. The same post made Amazon CodeWhisperer generally available free for individual developers for Python, Java, JavaScript, TypeScript and C#, plus ten new languages including Go, Kotlin, Rust, PHP and SQL. No pricing and no region list were published at preview.

    Be precise when dating capability claims against this. April 2023 is announcement and limited preview, not general availability.

Security and edge

Sections
  • critical Chrome

    Chrome patches an in-the-wild V8 type confusion — chromereleases.googleblog.com

    Chrome 112.0.5615.121 shipped on 14 April 2023 for Windows, Mac and Linux, fixing CVE-2023-2033, a High type confusion in V8 reported by Clément Lecigne of Google's Threat Analysis Group on 11 April. Google stated that an exploit existed in the wild. The release carried two security fixes in total. A second exploited zero-day followed on 18 April — CVE-2023-2136, an integer overflow in Skia — in 112.0.5615.137/138 for Windows, 112.0.5615.137 for Mac and 112.0.5615.165 for Linux.

    This is a client-fleet patch rather than an infrastructure one, and the fleet is wider than it looks: every Electron and CEF-embedded application in the estate carries its own copy of V8 and updates on its own schedule, usually a slower one. Worth stating plainly to anyone who treats browser patching as a desktop-support concern — a compromise on the client defeats every control you hold at the edge, so no CDN or WAF configuration mitigates this one.

  • critical PaperCut

    PaperCut print servers are hijacked through an authentication bypass — bleepingcomputer.com

    CVE-2023-27350 is an authentication bypass leading to remote code execution in PaperCut MF and NG, alongside the related CVE-2023-27351; both are fixed in 20.1.7, 21.2.11 and 22.0.9 and later. Exploitation in the wild began on 16 April, CISA added the flaw to its Known Exploited Vulnerabilities catalog on 21 April with a 12 May federal remediation deadline, and Horizon3 published a working proof of concept on 24 April. Attackers abused PaperCut's built-in printer scripting feature to run code as SYSTEM, then installed Atera remote management software to keep access. On 26 April Microsoft attributed attacks to the Clop ransomware gang it tracks as Lace Tempest, and said some intrusions led to LockBit ransomware attacks.

    The interim mitigation is an edge control and it works without patching: block inbound traffic to TCP 9191 from external addresses at both the perimeter device and the host firewall, and restrict management to localhost. The broader prompt is to audit which internal administrative interfaces are reachable from the internet at all. Print management is precisely the class of service that gets published during an office move and never reviewed again.

    Update, May 2023: Microsoft said Iranian state-sponsored groups Mango Sandstorm and Mint Sandstorm were exploiting CVE-2023-27350.

Standards and compliance

Sections
  • critical PSPF

    The first PSPF Direction restricts TikTok on government devices — protectivesecurity.gov.au

    Announced on 4 April 2023, the Secretary of the Attorney-General's Department issued Direction 001-2023 on the TikTok application under the Protective Security Policy Framework — the first under a new power to issue mandatory directions. It restricts use of the TikTok app on devices issued by Commonwealth departments and agencies, based on the security risk the app presents. Exemptions are granted only case by case, with appropriate security mitigations in place.

    The direction covers government devices, but web teams should also know where TikTok pixels, embedded TikTok content and social-integration components sit on public-facing government sites. Treat it as a template rather than a one-off: a named-application Direction can take effect as soon as practicable, so the useful preparation is knowing where third-party embeds live before one is named.

    Update, February 2025: The Attorney-General's Department issued Direction 001-2025 on DeepSeek products, applications and web services on 4 February 2025.

  • notable ASD

    ACSC co-seals secure-by-design guidance that reads as a procurement checklist — cisa.gov

    CISA, the NSA, the FBI and international partners including the Australian Cyber Security Centre published "Shifting the Balance of Cybersecurity Risk" on 13 April 2023, urging manufacturers to put cybersecurity first during design and to provide out-of-the-box protections by default at no extra charge. It sets three principles — the burden of security should not fall solely on the customer, embrace radical transparency and accountability, and build organisational structure and leadership to achieve these goals. The secure-by-default expectations are unusually concrete: no universally shared default passwords, MFA that is opt-out rather than opt-in, high-quality audit logs at no extra charge, and smaller hardening guides through safe defaults.

    Because ACSC is named as an authoring agency, this was citable in Australian procurement and assurance conversations from the day it published. It converts into vendor questions somebody can actually check — is MFA on by default, are audit logs included at no extra charge, are there default credentials, is there a published SBOM. The same questions turn up in ISM and IRAP evidence and in CIRMP supply-chain sections, so a platform that can answer them once is answering several obligations at the same time.

  • fyi NIST

    NIST's CSF 2.0 draft Core adds a governance function — nist.gov

    NIST released a CSF 2.0 Core discussion draft on 24 April 2023 showing potential Functions, Categories and Subcategories. The draft adds a sixth Function, GOVERN, alongside Identify, Protect, Detect, Respond and Recover, and removes language specific to critical infrastructure so its outcomes apply to all organisations. NIST calls the draft preliminary, asks for feedback, and expects a fuller CSF 2.0 Draft this summer.

    Read the discussion draft if CSF is the framework you nominated in a CIRMP. A governance Function is on the way and control mappings built on CSF 1.1 will need re-baselining when CSF 2.0 is final, so record it now rather than when the final lands.

    Update, August 2023: NIST released the CSF 2.0 public draft on 8 August 2023.

    Update, February 2024: NIST published the final CSF 2.0 on 26 February 2024.

CMS and platforms

Sections
  • notable Drupal

    Drupal's private file download can be bypassed — drupal.org

    SA-CORE-2023-005, CVE-2023-31250, rated moderately critical at 13 out of 25. Drupal's file download facility does not sufficiently sanitise file paths in certain situations, letting users reach private files they should not have. Fixed in Drupal 7.96, 9.4.14, 9.5.8 and 10.0.8. All Drupal 7 sites on Windows are vulnerable and some Linux configurations are too; Drupal 9 and 10 are only vulnerable where a contributed or custom file-access module is installed. Some sites may need configuration changes after updating.

    Patch to the listed versions. The severity score understates it for a particular kind of site, because the exposure is proportional to what you deliberately put behind private file fields — government and health sites holding sensitive attachments should treat this as a high priority. The check worth running first is whether any contributed or custom file-access module is enabled, since that is what pulls a Drupal 9 or 10 site into scope.

  • notable GovCMS

    GovCMS opens Drupal 10 upgrade bookings — govcms.gov.au

    On 18 April 2023 GovCMS asked agencies to book a preferred timeslot for the Drupal 9 to Drupal 10 SaaS upgrade before the July window opened, and offered a Drupal 10 preview environment for functional testing ahead of migration. The automated upgrade gives each site a two-week review window and requires no content freeze. Recurring online information sessions ran through the period, with recordings available to registered GovTEAMS members. GovCMS was still targeting completion by 30 September 2023, ahead of Drupal 9's end of life.

    Agencies and vendors on GovCMS SaaS needed to book a preferred timeslot before the July automated upgrades. Plan around the two-week review window rather than the upgrade date — it is a testing commitment that lands whenever the booked slot lands, and a fortnight of somebody's attention is easier to find two months out than two days out.

Supply chain, CI/CD and IaC

Sections
  • critical GitHub Actions

    The ubuntu-18.04 runner label stops working — github.com

    GitHub set a 1 April 2023 target for removing the ubuntu-18.04 image and recorded it as fully unsupported by 3 April, closing a deprecation that began on 8 August 2022 and ran fifteen scheduled brownout windows, the last of them on 28–29 March.

    Nothing to do if you migrated — this closes an arc rather than opening one. The transferable lesson is about the brownouts, not the removal: the warning ran in CI logs for eight months, and any pipeline that classifies a scheduled failure as flaky and retries it will miss the next deprecation the same way. Worth checking whether your CI alerting can tell a brownout from an outage.

  • notable npm

    npm packages can carry proof of where they were built — github.blog

    Announced 19 April 2023 in public beta. Packages built on cloud CI/CD can publish with provenance — verifiable links back to their source code and build instructions. The mechanism matters as much as the feature: the CI system sends provenance in a signed OIDC JWT to Sigstore's public-good servers, which return a short-lived signing certificate that is sent to the registry with the built package. The provenance statement is signed with a single-use keypair that is deleted once the signature is generated. Consumers verify with npm audit signatures, and provenance is shown on the package page. GitHub Actions is the supported CI system at launch, with other CI/CD platforms to follow.

    This is a high-leverage change for anyone publishing npm packages, and the cost is two lines — id-token write in the workflow permissions, and --provenance on npm publish. What it buys is a cryptographic answer to the question every supply-chain incident of the past two years has turned on: did this tarball come from that repository. On the consuming side, npm audit signatures is worth wiring into CI now even though coverage across the registry is still thin, because the cost of adding it later is the same and the coverage only grows.

    Update, September 2023: npm provenance reached general availability on 26 September 2023, supporting GitHub Actions and GitLab CI/CD and restricted to public packages and public source repositories.

  • notable PyPI

    PyPI replaces long-lived publishing tokens with OIDC — blog.pypi.org

    Announced 20 April 2023, a day after npm provenance. Trusted Publishing uses OpenID Connect to exchange short-lived identity tokens between a trusted third-party CI service and PyPI, replacing long-lived passwords and API tokens entirely. PyPI issues tightly-scoped tokens that rotate automatically by expiring quickly, so a leaked CI log or a compromised runner yields a credential that is already dead. GitHub Actions was the only supported publisher at launch. Adoption means configuring PyPI to trust a specific repository and workflow filename, adding id-token write permission, removing the hardcoded username and password, and using the PyPA pypi-publish action.

    If PyPI publishing still runs on a PYPI_API_TOKEN repository secret, migrating deletes the secret rather than protecting it better, which removes the class of incident instead of reducing its likelihood. One surprising failure mode to write down where the next person will find it: the workflow filename is part of the trust configuration, so renaming a release workflow silently breaks publishing.

Languages, runtimes and frameworks

Sections
  • notable Go

    Go's html/template refuses actions inside JavaScript template literals — pkg.go.dev

    Go 1.19.8 and 1.20.3 shipped on 4 April 2023 with security fixes to go/parser, html/template, mime/multipart, net/http and net/textproto. The headline is CVE-2023-24538: html/template did not treat backticks as JavaScript string delimiters, so a template action inside an ES6 template literal could terminate the literal and inject JavaScript. The fix makes Template.Parse return an error for those actions. CVE-2023-24534, CVE-2023-24536 and CVE-2023-24537 were fixed in the same releases. Affects Go before 1.19.8 and Go 1.20.0 through 1.20.2. GODEBUG=jstmpllitinterp=1 restores the old behaviour but escapes backticks.

    Upgrade, then expect the build to break — templates that rendered yesterday now return a parse error. Resist GODEBUG=jstmpllitinterp=1 to get the build green. Fix the templates.

  • notable Node.js

    Node.js 14 reaches end of life — github.com

    Per the release team's own schedule data, Node 14 (Fermium) was first released on 21 April 2020, entered Active LTS on 27 October 2020, moved to Maintenance on 19 October 2021 and reached end of life on 30 April 2023. Its final release was v14.21.3 on 16 February 2023, which means February's security fixes are the last Node 14 will ever receive. Node 20 arriving as Current in the same month is a coincidence of the calendar rather than a migration path.

    Anything still on Node 14 after this date has no upstream security path at all; the 2023 migration target was Node 18, then in Active LTS. Take the date from the release team's schedule data rather than an end-of-life tracking vendor. Those vendors sell extended support, which gives them a commercial reason to present an end-of-life date as a decision point with options rather than as the day the patches stop.

  • fyi Node.js

    Node.js 20 ships with a permission model and a stable test runner — nodejs.org

    Released 18 April 2023 as Current. The experimental Permission Model restricts access to the file system, child_process, worker_threads and native addons. The test_runner module reached stable with describe, it and test, plus mocking and watch mode. Also shipped: synchronous import.meta.resolve, V8 11.3 bringing String.prototype.isWellFormed, the Array copy methods and the RegExp v flag, the Ada 2.0 URL parser, official ARM64 Windows binaries, and a changed Single Executable Apps flow that injects a blob from JSON config rather than raw JavaScript. The announcement stated Node 20 would enter long-term support in October 2023, serving as Current for six months first.

    The stable test runner is the change that alters a dependency list, since it makes a third-party test framework optional for straightforward suites — worth weighing at the next dependency audit rather than chasing immediately. One dating caveat: nodejs.org's own previous-releases table gives 17 April while the announcement post and the release team's schedule data both give 18 April. Prefer the schedule data.

Static site and web tooling

Sections
  • notable SvelteKit

    SvelteKit's CSRF protection is bypassed twice in three days — github.com

    CVE-2023-29003, published 4 April 2023, CVSS 8.8. SvelteKit's built-in CSRF protection checks POST requests for mismatched origins and validates the content type, but the check could be evaded simply by sending Content-Type text/plain. Fixed in 1.15.1, which widened is_form_content_type and extended CSRF checks to PUT, PATCH and DELETE to cover method-override attacks. Two days later came CVE-2023-29008, published 6 April, also CVSS 8.8: the widened comparison was case-sensitive, so Content-Type text/plaiN — which browsers accept — evaded it again. Fixed in 1.15.2.

    1.15.2 is the floor, not 1.15.1. Patching to the first advisory leaves the same control bypassed by a change of capitalisation, which is exactly why these two belong in one entry rather than two. Where an immediate upgrade is not possible, the documented mitigation is to set SameSite to anything other than None on authentication cookies, since exploitation needs cookies without SameSite protection, an outdated browser or disabled tracking protection. Any site relying on the framework's default CSRF protection for authenticated form actions was exposed across the whole window.

  • notable Next.js

    Next.js 13.3 changes what next build emits — nextjs.org

    Released 6 April 2023. Static Export landed for the App Router, so next build now emits an out directory whenever output export is set in next.config.js, and next export is no longer required — the same config covers both app and pages. Also shipped: the file-based Metadata API covering opengraph-image, twitter-image, favicon.ico, sitemap, robots and manifest, each with dynamic JS and TS variants; ImageResponse imported from next/server for dynamic OG image generation without an external package; and Parallel Routes using @folder slots alongside Intercepting Routes. The deprecated head.js metadata API was removed.

    Any pipeline still invoking next export should move to the config flag, which makes the separate command unnecessary. Separately, the Metadata API is worth adopting wherever OG images are currently produced by a standalone service, because ImageResponse removes both a dependency and a deploy step from that path.