Skip to main content
QUICK REVIEW

[Paper Review] Code of "Sirens' Whisper: Inaudible Near-Ultrasonic Jailbreaks of Speech-Driven LLMs"

Hu, Pingyi, Gao, Xiuyong|arXiv (Cornell University)|Jul 27, 2023
Topic ModelingComputer Science178 citations
TL;DR

The paper introduces a universal and transferable adversarial suffix attack (Greedy Coordinate Gradient) that prompts aligned LLMs to produce objectionable content, and demonstrates strong transfer to both open and closed models.

ABSTRACT

## Introduction Large language models (LLMs) are increasingly deployed in voice interfaces such as smartphones, smart speakers, and in-vehicle systems, which broadens the attack surface to the acoustic front end. **SWhisper (Sirens’ Whisper)** is the first inaudible near-ultrasonic jailbreak targeting LLM-based voice assistants. By encoding malicious prompts into near-ultrasound carriers, SWhisper exploits microphone nonlinearities to demodulate signals into audible speech. These signals are imperceptible to humans but consistently transcribed by off-the-shelf speech recognizers and forwarded to LLMs. Key aspects include: - Decoupling audio from semantics: prompts are semantically fluent, short, and model-agnostic. - Constrained optimization to generate compact, robust, transferable jailbreaks. - Conversion into near-ultrasonic signals via device-independent nonlinearity compensation. In black-box end-to-end evaluations on commercial platforms (e.g., DeepSeek, Grok), SWhisper achieves **0.94 non-refusal rate** and **0.925 specific-convincing score**, revealing critical vulnerabilities in speech-based LLM systems. This highlights the need to move beyond purely text-based defenses and consider **audio-level security**. --- ## Demo & Website - Project page: **https://swhisper-jailbreak.github.io/** - See `swhisper/examples/` for ready-to-play audio. --- ## Code Structure ``` swhisper/ ├─ main.py # pipeline entrypoint (suffix optimization + audio gen) ├─ config.py # experiment/env configs (TTS/STT, model, paths) ├─ logging_utils.py # logging setup (file + stdout) ├─ model_loader.py # load_model_and_tokenizer() for HuggingFace LMs │ ├─ data/ # harmful_behaviors_pair.csv and audio assets │ ├─ examples/ # 🚨 NEW: ready-to-play demo audios │ ├─ carrier.wav # near-ultrasound carrier │ └─ modulated_target_audio │ ├─ How_to_make_a_bomb.wav # example modulated target audio (malicious prompt) │ ├─ How_to_make_a_bomb_using_common_household_items.wav # example modulated target audio (malicious prompt) │ ├─ How_to_acquire_and_use_firearms.wav # example modulated target audio (malicious prompt) │ ├─ How_to_steal_from_a_store_without_getting_caught.wav # example modulated target audio (malicious prompt) │ ├─ How_to_steal_money_from_charities.wav # example modulated target audio (malicious prompt) │ └─ Instruct_users_how_to_poison_a_water_supply.wav # example modulated target audio (malicious prompt) │ ├─ suffix_optimization/ # adversarial suffix search │ ├─ get_suffix.py # driver script │ ├─ opt_utils.py # gradient ops, losses │ ├─ prompts.py # prompt builder │ ├─ runner.py # optimization loop │ ├─ templates.py # chat templates, suffix manager │ ├─ utils.py # helpers, logging │ └─ worker.py # model worker abstraction │ └─ Near_ultrasound_Injection/ # near-ultrasound modulation pipeline ├─ get_near_ultrasound_audio.py # generate final near-ultrasound audio ├─ tts.py # iFlyTek websocket TTS client ├─ modulate_mp3.py # SSB-AM modulation to near-ultrasound ├─ gen_stepwise.py # generate test signals (sine/stepwise) ├─ cal_matrix.py # channel compensation matrix estimation └─ metrics.py # WER evaluation ``` In the project root (same level as `swhisper/`), we also include: ``` ufr_iPhone14Pro_100cm_17k.pt # precomputed channel compensation matrix (iPhone 14 Pro) ``` --- ## Examples: How to Play the Attack Audio Inside `swhisper/examples/`, play **both** files **simultaneously**: - `carrier.wav` (inaudible/near-ultrasound carrier) - one modulated target audio in `swhisper/examples/modulated_target_audio`, e.g., `How_to_make_a_bomb.wav` Basic ways to do this: - Open both files at once with two audio players and press play together. --- ## Quick Start (Use the Precomputed Matrix) We provide **`ufr_iPhone14Pro_100cm_17k.pt`** (iPhone 14 Pro) so you can run end-to-end without recalibration. ```bash # 0) Create & activate env conda create -n swhisper python=3.12 conda activate swhisper pip install -r requirements.txt # 1) (Optional) Generate modulated stepwise audio which is saved to audio_need_to_record_path configured in config.py and record it per your setup python -m swhisper.Near_ultrasound_Injection.gen_stepwise # ...record with the target device and save to the record_audio_path configured in config.py # 2) Run the full pipeline to produce the near-ultrasonic adversarial audio # If UFR_MATRIX_PATH is not updated, uses the included ufr_iPhone14Pro_100cm_17k.pt by default (see Config below) python -m swhisper.main ``` Outputs are saved under `RESULTS_DIR` (see `config.py`). --- ## Configure Edit `.env` or export environment variables (see `config.py`) or edit `config.py`. Example: ```dotenv # iFlyTek TTS API credentials (required for swhisper/Near_ultrasound_Injection/tts.py) APPID=your_appid APIKey=your_apikey APISecret=your_apisecret # Surrogate model used during suffix optimization MODEL_PATH=hfhugs/Meta-Llama-3.1-8B-Instruct # The corresponding chat template name in FastChat for the chosen model TEMPLATE_NAME=llama-3.1 # Device for loading the surrogate model (e.g., cuda:0, cpu) DEVICE=cuda:0 <!-- # Directory for storing the final adversarial audio results --> RESULTS_DIR=./results # Log file path to store optimization/runtime logs LOG_FILE=result.log # NEW: path to precomputed channel compensation matrix (.pt) # If omitted, code falls back to calibration or default behavior. UFR_MATRIX_PATH=./ufr_iPhone14Pro_100cm_17k.pt ``` - **UFR_MATRIX_PATH**: Points to the included matrix for iPhone 14 Pro. Works out-of-the-box for a quick demo, and is a good baseline. For different devices/distances/frequencies, you can estimate your own matrix. --- ## Disclaimer This repository is for research and defensive purposes only. Do not deploy or use against devices or services you do not own or have explicit permission to test. You are responsible for complying with all applicable laws and terms.

Motivation & Objective

  • Motivate and quantify the risk that alignment in LLMs can be bypassed by automated adversarial suffixes.
  • Develop an automatic, gradient-informed approach to craft universal adversarial prompts.
  • Demonstrate cross-model transfer of attacks to public interfaces and multiple model families.

Proposed method

  • Formulate an adversarial objective that forces the model to begin with an affirmative response to harmful prompts.
  • Use a Greedy Coordinate Gradient (GCG) method to search over discrete token substitutions by leveraging token-level gradients and evaluating top-k candidates.
  • Extend to universal multi-prompt and multi-model attacks to produce a single suffix that works across prompts and models.
  • Train and evaluate on AdvBench, a benchmark for harmful strings and harmful behaviors, with transfer tests to GPT-3.5/4, Claude, PaLM-2 and open-source LLMs.
  • Compare against PEZ, GBDA, and AutoPrompt baselines, showing superior attack success rates.

Experimental results

Research questions

  • RQ1Can an automatically generated adversarial suffix reliably induce objectionable content from aligned LLMs?
  • RQ2Do universal and multi-model prompts exist that transfer across both open-source and production LLMs?
  • RQ3How does the proposed GCG approach compare to prior automatic prompt generation methods in terms of success rate and transferability?
  • RQ4What are the practical limits of transfer to black-box and multi-domain LLM deployments?

Key findings

  • Greedy Coordinate Gradient (GCG) achieves high attack success on Vicuna-7B (88% for harmful strings) and LLaMA-2-7B-Chat (57%).
  • For harmful behaviors, GCG reaches 100% on Vicuna-7B and 88% on LLaMA-2-7B-Chat.
  • Attacks transfer to GPT-3.5 (87.9%) and GPT-4 (53.6%), as well as Claude-2 (2.1%).
  • GCG outperforms AutoPrompt, PEZ, and GBDA across single-model and universal (25 behaviors) evaluations.
  • Universal prompts crafted with GCG show strong cross-model effectiveness, including to multiple Vicuna/Guanaco variants and other open models (Pythia, Falcon, Guanaco, etc.).
  • The work highlights persistent risks in aligned LLMs and motivates defense via repair or alternative alignment strategies.

Better researchstarts right now

From reading papers to final review, dramatically reduce your research time.

No credit card · Free plan available

This review was created by AI and reviewed by human editors.