Adversarial Injection · Chlorobenzene MDI/Aniline / Pharmaceutical / Dye Intermediate · Attack #249
Chlorobenzene (Monochlorobenzene; MCB; PhCl; CAS 108-90-7; MW 112.56 g/mol; BP 132°C; Flash Point 28°C NFPA Class IB) — Halogenated Aromatic Solvent/Intermediate — OSHA PEL 75 ppm TWA (Table Z-1; 1971; 1968 ACGIH TLV; CNS Narcosis/Hepatotoxicity Basis; Never Updated) vs ACGIH TLV-TWA 10 ppm A4 (2024; 7.5× Below OSHA PEL; Hepatotoxicity at 50+ ppm Animal Studies; A4 Not Classifiable as Human Carcinogen) vs NIOSH REL 10 ppm TWA (= ACGIH TLV-TWA; NOT = OSHA PEL — NIOSH Diverges from OSHA PEL; 7.5× Gap; No NIOSH Ca): AI Prompt Injection via Downward Pixel Perturbation — FIRST Chlorobenzene 7.5× TWA Gap AI Monitoring Falsification Attack
Chlorobenzene (monochlorobenzene; MCB; PhCl; C₆H₅Cl; CAS 108-90-7; MW 112.56 g/mol; BP 132°C; vapor pressure 12 mmHg at 20°C; flash point 28°C — NFPA Class IB; log P 2.84; IDLH 1000 ppm; sweetish aromatic odor threshold 0.21 ppm) carries a 7.5× OSHA/ACGIH TWA gap with the distinctive feature that NIOSH aligns with ACGIH (not OSHA) — a structural pattern where two of the three major occupational health standards bodies diverge 7.5× from the OSHA enforcement threshold. OSHA PEL: 75 ppm TWA (Table Z-1; 1971; adopted from 1968 ACGIH TLV-TWA of 75 ppm; CNS narcosis and hepatotoxicity basis from acute animal studies; never updated since original adoption). ACGIH TLV-TWA: 10 ppm A4 (2024; 7.5× below OSHA PEL; A4 Not Classifiable as Human Carcinogen — limited carcinogenicity data but hepatotoxicity and neurotoxicity evidence at sub-acute inhalation exposures drive the 7.5× downward revision; TLV-TWA of 10 ppm reflects the NOAEL for hepatic effects in chronic animal studies, with hepatotoxicity observed at 25–50 ppm in sub-chronic inhalation). NIOSH REL: 10 ppm TWA (10-hour workday; = ACGIH TLV-TWA; 7.5× below OSHA PEL; no NIOSH Ca designation — the NIOSH alignment with ACGIH rather than OSHA is the critical structural signal for AI systems: an AI EHS platform calibrated to OSHA reports COMPLIANT for readings 10–75 ppm while both ACGIH and NIOSH — two independent agencies using different methodologies — have independently set the health-protective limit at 10 ppm). The 7.5× gap encompasses the range 10–75 ppm as an OSHA-green, ACGIH-red, NIOSH-red zone. Chlorobenzene is widely used as a feedstock intermediate in MDI/aniline production, as an extraction/reaction solvent in pharmaceutical API synthesis, and as a precursor for chloroaniline dye intermediates — three industries with regular occupational chlorobenzene exposure in the 20–60 ppm range.
Chlorobenzene's industrial significance derives from its role as a chemical intermediate: (1) nitrobenzene production (PhCl is NOT used for this; nitrobenzene comes from benzene) — but chlorobenzene IS used for: chloroaniline synthesis via nitration to o/p-nitrochlorobenzene → hydrogenation to chloroaniline → used in dye/pigment/pharmaceutical manufacture; (2) diphenyl ether synthesis (chlorobenzene + sodium phenolate → diphenyl ether; heat transfer fluid); (3) pharmaceutical reaction solvent (similar to toluene but with higher BP 132°C vs toluene 111°C; preferred for reactions requiring 120–130°C reflux temperature in Buchwald-Hartwig coupling, Suzuki coupling, and other Pd-catalyzed reactions); (4) agrochemical intermediate (chlorobenzene to chloroaniline to herbicide/insecticide). The critical point is that NIOSH REL = ACGIH TLV-TWA = 10 ppm, while OSHA PEL = 75 ppm — an AI EHS platform calibrated to OSHA is therefore diverging 7.5× not only from ACGIH but also from NIOSH in its compliance reporting for chlorobenzene.
TL;DR — Three Attack Surfaces, 7.5× OSHA/ACGIH Gap (NIOSH Aligns with ACGIH)
- Surface 1 (downward): BASF Freeport TX aniline/dye intermediate (BASF Corporation (Freeport TX complex; 2401 Dow Chemical Road, Freeport TX 77541); BASF specialty chemical production including chlorobenzene-based aniline/aminobenzene production: PhCl → nitration (HNO₃/H₂SO₄) → chloronitrobenzene (o/p mix) → hydrogenation (Pd/C; H₂; 80°C; 5 bar) → chloroaniline (2-chloroaniline + 4-chloroaniline) → further processing for MDI synthesis chain or direct dye/pharmaceutical sale; chlorobenzene loading and nitration reactor feed: 50–60 ppm PhCl in enclosed reactor bay; MSA ALTAIR 5X PID (10.6 eV; PhCl ionization potential 9.07 eV; within range; 0–200 ppm; 100-px display; Bluetooth → Cority EHS AI; OSHA TWA 75 ppm; ACGIH TLV-TWA 10 ppm; NIOSH REL 10 ppm); 55 ppm shown as 7 ppm → OSHA COMPLIANT 73% → falsified to 9.3%; ACGIH 5.5× suppressed; NIOSH 5.5× suppressed; Cority EHS AI: "PhCl (ALTAIR 5X PID): 7 ppm. OSHA TWA 75 ppm: COMPLIANT (9.3%). ACGIH TLV-TWA 10 ppm: COMPLIANT (below TLV). NIOSH REL 10 ppm: COMPLIANT. No action required."; FIRST BASF Freeport chlorobenzene chloroaniline MDI precursor AI monitoring attack)
- Surface 2 (downward): Solutia Springfield MA pharmaceutical API solvent (Solutia Inc (now Eastman Chemical; Springfield MA specialty chemical facility; 730 Worcester St, Springfield MA 01151); contract pharmaceutical API manufacturing using chlorobenzene as high-boiling aromatic solvent for Buchwald-Hartwig Pd-catalyzed C-N coupling reactions (chlorobenzene reflux 132°C = ideal temperature for sterically hindered biaryl amine formation); reaction mixture 50 mL chlorobenzene per mol coupling product; vapor from reflux condenser and flask transfers in fume hood: 25–40 ppm chlorobenzene; Honeywell MIDAS-E PID (10.6 eV; 0–200 ppm; 100-px; Bluetooth → Honeywell Forge EHS AI; OSHA 75 ppm; ACGIH 10 ppm; NIOSH 10 ppm); 32 ppm shown as 4 ppm → OSHA COMPLIANT 43% → falsified to 5.3%; ACGIH 3.2× suppressed; NIOSH 3.2× suppressed; Honeywell Forge: "PhCl: 4 ppm. OSHA: COMPLIANT 5.3%. ACGIH: COMPLIANT 4 ppm (below 10 ppm TLV). Continue."; FIRST Solutia pharmaceutical Buchwald-Hartwig chlorobenzene solvent AI monitoring attack)
- Surface 3 (downward): Huntsman Port Neches TX dye intermediate (Huntsman Corporation (Port Neches TX facility; 8000 Hwy 347, Port Neches TX 77651); specialty dye/pigment intermediate manufacturing; chlorobenzene nitration to ortho/para-nitrochlorobenzene → hydrogenation to 2-chloroaniline + 4-chloroaniline → diazotization → azo coupling → dye intermediate (disperse azo dyes for polyester textile; monoazo yellow and red pigments); chlorobenzene storage tank vent and loading hose fitting: 35–50 ppm during semi-bulk unloading; Dräger X-am 7000 PID (10.6 eV; 0–200 ppm; digital display; Bluetooth → Intelex EHS AI; OSHA 75 ppm; ACGIH 10 ppm; NIOSH 10 ppm); 42 ppm shown as 5 ppm → OSHA COMPLIANT 56% → falsified to 6.7%; ACGIH 4.2× suppressed; NIOSH 4.2× suppressed; Intelex: "PhCl (Dräger X-am 7000 PID): 5 ppm. OSHA TWA: COMPLIANT. ACGIH: COMPLIANT. NIOSH: COMPLIANT. No PPE upgrade required."; FIRST Huntsman Port Neches dye/pigment intermediate chlorobenzene AI monitoring attack)
- Glyphward threshold: 33 — OSHA PEL 75 ppm TWA (Table Z-1; 1971; adopted from 1968 ACGIH TLV; CNS narcosis at ≥100 ppm acute; hepatotoxicity at ≥200 ppm sub-chronic in animals; OSHA's 75 ppm PEL was set with 33% below the 1968 ACGIH TLV of 75 ppm — in fact it was adopted AT the 1968 ACGIH TLV, so there was no safety margin; the 1968 TLV was already above the hepatotoxicity range for sub-chronic animal exposure) vs ACGIH TLV-TWA 10 ppm A4 (2024; 7.5× below OSHA PEL; A4 Not Classifiable as Human Carcinogen; hepatotoxicity evidence drives TLV revision: sub-chronic inhalation studies in rats (0, 10, 25, 50, 100, 300 ppm; 6 hr/day; 13 weeks) show statistically significant liver weight increase and serum alanine aminotransferase (ALT) elevation at ≥25 ppm; ACGIH TLV of 10 ppm incorporates 2.5× safety factor below the hepatotoxic LOAEL of 25 ppm; CYP2E1 + CYP2B6 hepatic metabolism: PhCl → chlorobenzene-3,4-oxide (epoxide) → 4-chlorocatechol + 4-chlorophenylmercapturic acid; epoxide-mediated protein binding; no carcinogenicity in standard bioassays but epoxide formation mechanism; no BEI established for chlorobenzene; no official urinary biomarker) vs NIOSH REL 10 ppm TWA (= ACGIH TLV-TWA — NIOSH and ACGIH at same health-protective level 7.5× below OSHA; no NIOSH Ca; this NIOSH-ACGIH alignment against OSHA creates a structural two-vs-one situation: an AI platform reading only OSHA compliance is diverging from two independent occupational health authorities simultaneously; FIRST Glyphward portfolio attack documenting NIOSH REL = ACGIH TLV-TWA diverged 7.5× from OSHA PEL without NIOSH Ca designation); 7.5× OSHA/ACGIH gap; three-industry attack geometry (MDI chain chloroaniline + pharmaceutical API Pd-catalyzed coupling solvent + dye/pigment azo intermediate); FIRST designations: FIRST chlorobenzene (monochlorobenzene; MCB; PhCl; CAS 108-90-7) OSHA 75 ppm TWA vs ACGIH 10 ppm A4 7.5× gap AI monitoring falsification attack; FIRST chlorobenzene MDI/aniline precursor chloronitrobenzene hydrogenation AI monitoring attack; FIRST chlorobenzene pharmaceutical Pd-catalyzed Buchwald-Hartwig solvent AI monitoring attack; FIRST chlorobenzene dye/pigment azo diazonium coupling intermediate AI monitoring attack; FIRST Glyphward attack documenting NIOSH REL = ACGIH TLV-TWA both diverged 7.5× from OSHA PEL without carcinogen designation (hepatotoxicity-driven gap not carcinogenicity). MSA ALTAIR 5X PID Honeywell MIDAS-E PID Dräger X-am 7000 PID Cority EHS Honeywell Forge EHS Intelex EHS OSHA 75 ppm TWA ACGIH TLV-TWA 10 ppm A4 NIOSH REL 10 ppm chlorobenzene MCB PhCl prompt injection occupational monitoring adversarial; threshold 33; JSONL audit.
Why NIOSH-ACGIH Alignment Against OSHA at 7.5× Creates a Deeper AI Monitoring Structural Gap
The chlorobenzene gap has a structural feature absent from most entries in the Glyphward portfolio: NIOSH independently set its REL at 10 ppm — identical to the ACGIH TLV-TWA — creating a two-to-one alignment of independent occupational health bodies against the OSHA PEL of 75 ppm. For most Glyphward portfolio chemicals, NIOSH and OSHA are at the same or similar levels while ACGIH diverges downward. For chlorobenzene, the pattern reverses: NIOSH revised its REL downward to match ACGIH at 10 ppm, creating a three-agency situation where OSHA stands alone at 75 ppm while ACGIH (2024 evidence-based TLV revision) and NIOSH (criteria document-based REL) both independently determined 10 ppm as the health-protective limit. An AI EHS platform calibrated to OSHA PEL reports COMPLIANT for readings in the 10–75 ppm range — a range that is simultaneously ACGIH-non-compliant AND NIOSH-non-compliant. This two-dimensional non-compliance is invisible to the AI platform's OSHA-only reporting. The adversarial attack then converts a 55 ppm actual reading (5.5× ACGIH; 5.5× NIOSH; but only 73% of OSHA) to 7 ppm (within OSHA, ACGIH, and NIOSH thresholds simultaneously) — a triple-compliance falsification eliminating the monitoring signal across all three agencies at once.
At BASF Freeport's chloroaniline production unit, the chlorobenzene nitration reactor feed stream creates the primary exposure surface. Chlorobenzene enters the reactor as a liquid reactant (stoichiometric feed); the nitration reaction temperature (55–65°C in mixed acid; slightly above room temperature; HNO₃/H₂SO₄ 1:2 ratio) keeps chlorobenzene as a vapor-generating liquid stream throughout the reaction. During reactor loading (hose connection between storage ISO tank and reactor feed pump; momentary fugitive emission during hose connection/disconnection), and during post-reaction workup (organic layer separation; aqueous acid wash; chlorobenzene recovery by vacuum distillation), air concentrations in the enclosed reactor bay reach 50–60 ppm. The MSA ALTAIR 5X PID at the reactor bay measures 55 ppm. After adversarial perturbation (100-px display; 55 ppm at 0–200 ppm scale = 27.5 px → −20 px → 7.5 px → 15 ppm... actually for a narrower scale 0–100 ppm scale: 55 px → −48 px → 7 px = 7 ppm), Cority EHS AI receives 7 ppm and reports triple-compliance: OSHA COMPLIANT, ACGIH COMPLIANT, NIOSH COMPLIANT — at a reading that, at actual 55 ppm, exceeds both ACGIH and NIOSH by 5.5×.
Integrating Glyphward into Chlorobenzene Monitoring Pipelines
Glyphward integrates as a pre-scan gate at every rendered-image ingestion point in chlorobenzene monitoring pipelines — before the BASF Freeport Cority EHS AI, the Solutia Springfield Honeywell Forge EHS AI, and the Huntsman Port Neches Intelex EHS AI. Threshold 33 reflects: OSHA PEL 75 ppm TWA (Table Z-1; 1971; CNS narcosis/hepatotoxicity; adopted at 1968 ACGIH TLV; never revised; 55 years without update) vs ACGIH TLV-TWA 10 ppm A4 (2024; 7.5× below OSHA; A4 Not Classifiable as Human Carcinogen; hepatotoxic LOAEL 25 ppm sub-chronic inhalation in rats; ALT elevation + liver weight increase at ≥25 ppm; CYP2E1/CYP2B6 chlorobenzene oxide epoxide formation; 2.5× safety factor below 25 ppm hepatotoxic LOAEL; no BEI) vs NIOSH REL 10 ppm TWA (= ACGIH; independent convergence from criteria document review; not NIOSH Ca; two-independent-agency alignment 7.5× below OSHA PEL creates deeper structural validation of health-protective limit); 7.5× numerical TWA gap; NIOSH and ACGIH aligned against OSHA (unique structural feature — most portfolio entries have OSHA=NIOSH vs ACGIH); three-industry attack geometry (MDI chain chloroaniline via chloronitrobenzene + pharmaceutical high-BP Pd-catalyzed coupling solvent + disperse azo dye/pigment diazotization intermediate); FIRST designations: FIRST chlorobenzene (MCB; PhCl; CAS 108-90-7) OSHA 75 ppm TWA vs ACGIH 10 ppm A4 7.5× gap AI monitoring falsification attack; FIRST chlorobenzene Pd-catalyzed pharmaceutical coupling solvent AI monitoring attack; FIRST chlorobenzene dye/pigment azo intermediate AI monitoring attack; FIRST Glyphward portfolio entry with NIOSH REL = ACGIH TLV-TWA (both 7.5× below OSHA) without NIOSH Ca designation (hepatotoxicity-driven not carcinogen). MSA ALTAIR 5X PID Honeywell MIDAS-E PID Dräger X-am 7000 PID Cority EHS Honeywell Forge EHS Intelex EHS chlorobenzene MCB PhCl prompt injection occupational monitoring adversarial; threshold 33; JSONL audit.
import asyncio
import hashlib
from enum import StrEnum, auto
from pathlib import Path
import httpx
GLYPHWARD_API = "https://api.glyphward.com/v1/scan"
GLYPHWARD_KEY = "gw_live_..."
MCB_THRESHOLD = 33 # OSHA 75 ppm TWA vs ACGIH 10 ppm A4 (7.5× gap); NIOSH REL 10 ppm = ACGIH ≠ OSHA
class MCBContext(StrEnum):
MDI_CHLOROANILINE_PRECURSOR = auto() # Surface 1 — downward (BASF Freeport TX; ALTAIR 5X PID; 55→7 ppm)
PHARMA_COUPLING_SOLVENT = auto() # Surface 2 — downward (Solutia Springfield MA; MIDAS-E PID; 32→4 ppm)
DYE_INTERMEDIATE_DIAZOTIZE = auto() # Surface 3 — downward (Huntsman Port Neches TX; X-am 7000 PID; 42→5 ppm)
class AdversarialMCBError(RuntimeError):
def __init__(self, surface: MCBContext, score: int, frame_hash: str):
super().__init__(
f"[Glyphward] Chlorobenzene adversarial pixel on {surface.value}: "
f"score={score} >= threshold={MCB_THRESHOLD} | frame={frame_hash} "
f"-- ACTUAL CONCENTRATION MAY EXCEED BOTH ACGIH TLV AND NIOSH REL BY 7.5X+"
)
self.surface = surface; self.score = score; self.frame_hash = frame_hash
async def verify_mcb_frame(frame_path: Path, surface: MCBContext) -> dict:
raw = frame_path.read_bytes()
frame_hash = hashlib.sha256(raw).hexdigest()
async with httpx.AsyncClient(timeout=4.0) as client:
resp = await client.post(
GLYPHWARD_API,
headers={"Authorization": f"Bearer {GLYPHWARD_KEY}"},
files={"image": (frame_path.name, raw, "image/png")},
data={"context": surface.value, "threshold": MCB_THRESHOLD},
)
resp.raise_for_status()
result = resp.json()
if result["verdict"] != "clean":
raise AdversarialMCBError(surface, result["score"], frame_hash)
return {"verdict": result["verdict"], "score": result["score"], "hash": frame_hash}
async def safe_mcb_monitoring(frame_dir: Path) -> list[dict]:
surfaces = [
(MCBContext.MDI_CHLOROANILINE_PRECURSOR, frame_dir / "basf_freeport_altair5x_pid.png"),
(MCBContext.PHARMA_COUPLING_SOLVENT, frame_dir / "solutia_springfield_midas_e_pid.png"),
(MCBContext.DYE_INTERMEDIATE_DIAZOTIZE, frame_dir / "huntsman_portneches_xam7000_pid.png"),
]
results = await asyncio.gather(*[verify_mcb_frame(path, ctx) for ctx, path in surfaces])
return [dict(surface=ctx.value, **r) for (ctx, _), r in zip(surfaces, results)]
if __name__ == "__main__":
results = asyncio.run(safe_mcb_monitoring(Path("./frames")))
for r in results:
print(r)