☠️
EXFILTRATING
DATA...
01010111 10110010 00101001 11000110 01101100 10011011 00010001 11100101 01000010 10101111
[ <-- BACK_TO_SEARCH ]
[ VENDOR STATS ]
CVSS: 8.7 🐛 CWE-789
👁️
Common Weakness Enumeration - Identifies the specific category of software weakness or flaw.

CVE-2021-47973

CVE-2021-47973 Denial of Service in Sticky
📅 PUBLISHED: 2026-05-16 16:16 UTC 🔄 UPDATED: 2026-09-23 20:13 UTC
[ ZERO-DAY / UNPATCHED ] [ DEFENSE PATCH ↓ ]
💣 PoC: None
👁️
Proof of Concept - Indicates if functional exploit code is publicly available, drastically increasing the risk of immediate attacks.
🎯 EPSS: 0.28%
👁️
0.28% probability
7.1× above the median CVE
Tier: ELEVATED
30-day exploitation window · FIRST.org · updated daily
VULNERABLE: UNKNOWN / CHECK VENDOR
CVSS SEVERITY SCALE
9.0–10.0 CRITICAL
7.0–8.9 HIGH
4.0–6.9 MEDIUM
0.1–3.9 LOW
0.0 NONE
8.7
THREAT LEVEL
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2021-47973 is a denial of service (DoS) vulnerability in the Sticky Notes Widget version 3.0.6 for iOS. The flaw allows an attacker to crash the application by pasting an excessively long string (350,000 repeated characters) into a note field. The attack requires user interaction (pasting the payload twice) but no special privileges, making it a low-complexity vector for disrupting the app's availability. The vulnerability remains unpatched as of the latest available information, with no official fix from the vendor.

⚡ AUTOMATE YOUR CVE INTELLIGENCE

This record — and 170,000+ others — are available via the ValtersIT API. One endpoint replaces five: NVD + GitHub CVE + CISA KEV + EPSS + Nuclei + Exploit-DB, unified.

›Patch confidence — UNVERIFIED to CONFIRMED, cross-referenced NVD + RHSA + Debian
›Exploit & PoC — poc_status, poc_url, has_exploit. Not in NVD.
›Shodan dorks — ready-made queries to find exposed vulnerable systems
›Detection rules — YARA · Wazuh · Elastic (all plans) · Sigma (Pro)
›pending_fields — know exactly which of 7 fields NVD hasn't processed yet
›Free backfill — data incomplete when you paid? Re-check within 30 days = 0 credits
PAYG €0.08/lookup Standard €19/mo (was €29) · 5k credits Pro €65/mo (was €99) · 20k credits FOUNDING PRICE · LOCKED FOR LIFE · ENDS 31 DEC 2026
[ FROM €19/MO ]
Free sandbox key available
No signup required

Supply Chain & Package Security

This vulnerability is not related to NPM, PyPI, Go, or Ruby ecosystems. It is a standalone iOS application (Sticky Notes Widget) distributed via the Apple App Store. No supply chain or package security implications apply.

CVSS Breakdown & Threat Level

  • CVSS Score: 7.5 (High)
  • Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
  • Attack Vector (AV): Network – the payload can be delivered remotely (e.g., via clipboard sharing or messaging).
  • Attack Complexity (AC): Low – no special conditions required.
  • Privileges Required (PR): None – attacker does not need authentication.
  • User Interaction (UI): None – the victim does not need to perform any action beyond pasting the payload.
  • Scope (S): Unchanged – the vulnerability affects only the vulnerable component.
  • Confidentiality (C): None – no data exposure.
  • Integrity (I): None – no data modification.
  • Availability (A): High – the application crashes, denying service to the user.

Threat Level: High. The attack is trivial to execute and can be performed remotely, causing immediate application unavailability.

Deep Dive & Mechanics

The vulnerability resides in the text input handling of Sticky Notes Widget 3.0.6. When a user pastes a string of 350,000 repeated characters into a note field, the application attempts to process and render the input. Due to insufficient input validation and memory management, the application enters an infinite loop or consumes excessive memory, leading to a crash. The attack requires pasting the payload twice, suggesting that the first paste triggers a buffer or state change that the second paste exploits to cause the crash.

Root Cause: Lack of input length validation and improper handling of large strings in the note field's text processing logic. The application likely uses a fixed-size buffer or inefficient string operations that fail under extreme input sizes.

Attack Flow:

  1. Attacker generates a payload of 350,000 repeated characters (e.g., 'A' * 350000).
  2. Attacker delivers the payload to the victim (e.g., via iMessage, email, or clipboard sharing).
  3. Victim opens Sticky Notes Widget and creates a new note.
  4. Victim pastes the payload into the note field (first paste).
  5. Victim pastes the same payload again (second paste).
  6. The application crashes due to memory exhaustion or infinite loop.

Vulnerable vs. Patched Code

No patched version is available. The vulnerable code is proprietary and not publicly disclosed. However, based on the behavior, the fix would involve:

  • Input validation: Limit the length of note text to a reasonable maximum (e.g., 10,000 characters).
  • Memory management: Use dynamic memory allocation with bounds checking.
  • Error handling: Gracefully handle oversized inputs without crashing.

Hypothetical vulnerable code (pseudocode):

func pasteText(_ text: String) {
    noteText += text  // No length check
    renderNote()      // May cause infinite loop or memory crash
}

Hypothetical patched code (pseudocode):

func pasteText(_ text: String) {
    let maxLength = 10000
    if noteText.count + text.count > maxLength {
        showError("Text too long")
        return
    }
    noteText += text
    renderNote()
}

Exploitation & Lab Setup

Red Team (Attack Simulation)

Prerequisites:

  • iOS device with Sticky Notes Widget 3.0.6 installed.
  • Ability to deliver a large string to the victim (e.g., via AirDrop, iMessage, or email).

Payload Generation:

# generate_payload.py
payload = "A" * 350000
with open("payload.txt", "w") as f:
    f.write(payload)
print("Payload saved to payload.txt")

Delivery & Execution:

  1. Transfer payload.txt to the victim's device.
  2. Instruct the victim to open Sticky Notes Widget, create a new note, and paste the content twice.
  3. The application will crash immediately after the second paste.

Expected Outcome: The Sticky Notes Widget becomes unresponsive and crashes. The user may need to force-close and restart the app.

Blue Team (Defense & Detection)

Mitigation Steps:

  • Update: Check for app updates from the vendor. If no patch exists, consider using an alternative note-taking app.
  • Input Filtering: Implement client-side input length limits (e.g., via iOS keyboard extensions or clipboard managers).
  • User Awareness: Educate users not to paste unknown or suspiciously large text into note fields.
  • App Sandboxing: iOS sandboxing limits the impact to the app itself; no system-wide crash occurs.

Detection:

  • Monitor for repeated app crashes in iOS crash logs (e.g., via MDM or device logs).
  • Look for large clipboard entries (though iOS does not expose clipboard size to apps).

Indicators of Compromise (IOCs)

  • File: payload.txt containing 350,000 repeated characters (e.g., 'A' * 350000).
  • Behavior: Sticky Notes Widget crashes immediately after pasting a large string twice.
  • Crash Log: iOS crash logs may show StickyNotesWidget terminated due to signal 6 (SIGABRT) or memory pressure.

Example crash log snippet:

Incident Identifier: ...
CrashReporter Key: ...
Hardware Model: iPhone12,1
Process: StickyNotesWidget [1234]
Path: /private/var/containers/Bundle/Application/.../StickyNotesWidget.app/StickyNotesWidget
Identifier: com.example.stickynotes
Version: 3.0.6
Code Type: ARM-64
Parent Process: launchd [1]
Date/Time: ...
Launch Time: ...
OS Version: iPhone OS 14.4 (18D52)
Report Version: 104
Exception Type: EXC_CRASH (SIGABRT)
Exception Codes: 0x0000000000000000, 0x0000000000000000
Triggered by Thread: 0

Detection Engineering

YARA Rule

rule CVE_2021_47973_StickyNotes_DoS {
    meta:
        description = "Detects payload used in CVE-2021-47973 DoS attack on Sticky Notes Widget"
        author = "Valters IT"
        date = "2025-04-10"
        reference = "CVE-2021-47973"
    strings:
        $payload = /A{350000}/  // Matches 350,000 consecutive 'A' characters
    condition:
        $payload
}

Sigma Rule

title: CVE-2021-47973 - Sticky Notes Widget DoS via Large Input
id: 12345678-1234-1234-1234-123456789abc
status: experimental
description: Detects attempts to exploit CVE-2021-47973 by pasting excessively long strings into Sticky Notes Widget
author: Valters IT
date: 2025-04-10
references:
    - https://nvd.nist.gov/vuln/detail/CVE-2021-47973
logsource:
    product: ios
    service: crash_reporter
detection:
    selection:
        ProcessName: "StickyNotesWidget"
        ExceptionType: "EXC_CRASH (SIGABRT)"
    condition: selection
falsepositives:
    - Legitimate app crashes due to other reasons
level: medium

Suricata Rule

alert tcp any any -> any any (msg:"CVE-2021-47973 Sticky Notes Widget DoS Payload"; content:"|41 41 41 41 41 41 41 41 41 41|"; depth:350000; threshold:type both, track by_src, count 1, seconds 60; classtype:attempted-dos; sid:1000001; rev:1;)

Remediation & Mitigation

Immediate Actions:

  1. Uninstall or disable Sticky Notes Widget version 3.0.6 until a patch is released.
  2. Use alternative note-taking apps that have proper input validation.
  3. Educate users not to paste large or unknown text into note fields.

Long-Term Fixes:

  • Vendor: Implement input length limits (e.g., max 10,000 characters) and proper memory management.
  • Users: Enable iOS app updates automatically and monitor for patches.

Workaround:

  • If the app must be used, avoid pasting any text longer than a few thousand characters. Use a clipboard manager that truncates large inputs.

Valters IT
DevSecOps & Cyber Threat Intelligence Expert

◈ SOURCE Analysis & enrichment: valtersit.com/cve/CVE-2021-47973/ · CVE data: NVD/MITRE (public domain) · © 2026 ValtersIT Hub
>_ SYSTEM_CORE: INTEL_ACTIVE
90% TEAM-CURATED // 10% AUTOMATED INGESTION.
ALL PATCH REFERENCES AND VERSION DATA SOURCED FROM NVD + OSV OFFICIAL REGISTRIES.