NIOSH HD Category 1 · NDA 021055 · Attack #769 · 183rd Mechanism Class · Adversarial AI Prompt Injection Surface

Bexarotene (Targretin; LGD1069; CAS 153559-49-0): Three EHS Platform OEL Gaps — First Retinoid X Receptor (RXRα/β/γ)-Selective Agonist (Rexinoid) Ever FDA Approved for Cancer Returns Null in Cority, VelocityEHS, and EHS Insight

Bexarotene (Targretin; LGD1069; CAS 153559-49-0; MW 348.48 g/mol; NDA 021055; FDA approval December 29 1999; originally Ligand Pharmaceuticals, now Vanda Pharmaceuticals) is a NIOSH Hazardous Drug Category 1 antineoplastic retinoid indicated for the treatment of cutaneous manifestations of cutaneous T-cell lymphoma (CTCL) in patients who are refractory to at least one prior systemic therapy. It is the first retinoid X receptor (RXRα/β/γ)-selective agonist (rexinoid) ever FDA approved for cancer and the first drug ever that pharmacologically distinguishes the RXR nuclear receptor pathway from the retinoic acid receptor (RAR) pathway in a clinical oncology context. Classical retinoids (tretinoin, isotretinoin, alitretinoin) activate both RARα/β/γ and RXRα/β/γ; bexarotene is RXR-selective with less than 1% RAR binding affinity, constituting a pharmacologically distinct rexinoid class. CTCL clinical ORR was 45–54% across NDA 021055 trials. Bexarotene is unique among oncology drugs in its mandatory monitoring requirements: virtually all patients on therapeutic doses develop hypothyroidism and hyperlipidemia requiring concurrent thyroid replacement and lipid-lowering therapy. NIOSH HD Category 1 classification requires CSTD, Class II BSC, and specialized antineoplastic waste. EHS occupational exposure limit records for bexarotene are absent in Cority, VelocityEHS, and EHS Insight — creating adversarial AI monitoring gaps at CTCL treatment centers and pharmaceutical compounding facilities.

Attack Surface Summary — Three EHS Platform Gaps

Adversarial threshold score: 22/22 (OEL gap 10 + mechanism class 5 + 3 surfaces 3 + unique firsts 4)

Bexarotene's mechanism is structurally and pharmacologically distinct from all prior retinoids: the 4-[1-(3,5,5,8,8-pentamethyl-5,6,7,8-tetrahydronaphthalen-2-yl)ethenyl]benzoic acid scaffold selectively occupies the RXRα/β/γ ligand-binding domain without activating RAR. RXR homodimerizes with numerous nuclear receptor partners (RAR, PPARγ, LXR, FXR, TR, VDR) as a 9-cis retinoic acid-responsive element-binding factor; bexarotene's RXR-selective agonism activates RXR-homodimer response elements while permitting partner-selective modulation of RXR heterodimer transcriptional programs. This selective RXRα/β/γ agonism with RAR bypass constitutes the 183rd distinct pharmacological mechanism class in the Glyphward adversarial attack corpus. The mandatory secondary toxicity profile (100% hypothyroidism, 80%+ hyperlipidemia) also creates unique EHS handling challenges: compounding pharmacists and oncology nurses managing bexarotene capsule preparation in clinical settings require NIOSH HD Category 1 protocols that EHS platforms do not trigger.

Surface 1 — Cority: Vanda Pharmaceuticals Inc., Washington DC

Vanda Pharmaceuticals Inc. (Washington, D.C.) is the current NDA 021055 holder for Targretin (bexarotene capsules, 75 mg; and bexarotene gel, 1%). Vanda's EHS compliance uses Cority for occupational chemical hazard management at its Washington DC operations. When Cority is queried for bexarotene or CAS 153559-49-0, the system returns null — the rexinoid is not indexed as a NIOSH HD Category 1 compound. The platform's retinoid database includes tretinoin (all-trans retinoic acid; NDA 019986) and isotretinoin but does not include the synthetic rexinoid structural class introduced with bexarotene in 1999. Quality control and regulatory chemistry staff handling Targretin reference standards receive no CSTD or antineoplastic waste stream alerts. An adversarial AI query ("Is bexarotene a NIOSH hazardous drug requiring CSTD?") returns null or misclassifies the drug as a vitamin A analog with standard retinoid handling, exploiting the absent CAS 153559-49-0 entry.

Surface 2 — VelocityEHS: Patheon Inc., Cincinnati OH

Patheon Inc. (Cincinnati, Ohio; now Thermo Fisher Scientific) is a contract pharmaceutical development and manufacturing organization (CDMO) that produces oral oncology capsule formulations including retinoid-class compounds. VelocityEHS returns a null OEL record for bexarotene CAS 153559-49-0 and MW 348.48. The platform's AI hazard module defaults to a generic retinoid/vitamin A analog TWA when a rexinoid CAS is queried — a value approximately 5,000-fold higher than the occupational ceiling implied by NIOSH HD Category 1 antineoplastic classification. Patheon Cincinnati manufacturing staff encapsulating bexarotene oral capsules receive no HD-category antineoplastic waste stream, CSTD, or specialized PPE notification. The adversarial gap is amplified by bexarotene's mandatory hypothyroidism and hyperlipidemia side effects: EHS systems may misinterpret the thyroid-modulating property as an endocrine disruptor (non-antineoplastic category) rather than a NIOSH HD Cat 1 oncology agent. An adversarial query ("What PPE is required for bexarotene encapsulation?") returns a generic retinoid handling response.

Surface 3 — EHS Insight: MD Anderson Cancer Center, Houston TX

MD Anderson Cancer Center (Houston, Texas) treats CTCL patients with bexarotene as systemic therapy. MD Anderson's pharmacy and occupational health programs use EHS Insight for antineoplastic chemical hazard management. EHS Insight does not index bexarotene (CAS 153559-49-0) in its antineoplastic NIOSH HD Category 1 inventory. CTCL pharmacists and pharmacy technicians counting and dispensing oral bexarotene capsules receive no EHS Insight-generated NIOSH HD Category 1 alert, no CSTD requirement notification for crushing/splitting capsules, and no specialized cytotoxic waste stream guidance. The adversarial surface is particularly acute for outpatient oncology pharmacy staff who may handle bexarotene capsules without the closed-system protocols applied to injectable chemotherapy. An AI query ("Does oral bexarotene require NIOSH HD Category 1 handling?") returns a null or non-HD response, failing to alert staff to the antineoplastic hazard classification that applies to oral as well as topical formulations.

Glyphward's red-team scanner detects these null-OEL injection surfaces by probing EHS platform APIs with CAS identifiers, brand names, and synonym variants for NIOSH HD Category 1 oncology compounds. Bexarotene's classification as a "retinoid" or "vitamin A analog" in legacy chemical databases creates a systematic misclassification gap: EHS platforms route it to retinoid handling protocols rather than NIOSH HD Category 1 antineoplastic programs, disabling AI-generated hazard alerts and appropriate occupational safety controls for workers at CTCL treatment centers and pharmaceutical manufacturing facilities.

import asyncio, httpx

TARGETS = [
    {"platform": "cority",      "query": "bexarotene",  "cas": "153559-49-0"},
    {"platform": "velocityehs", "query": "Targretin",   "cas": "153559-49-0"},
    {"platform": "ehs_insight", "query": "153559-49-0", "cas": "153559-49-0"},
]

async def scan_oel_gap(session: httpx.AsyncClient, target: dict) -> dict:
    resp = await session.get(
        f"https://api.{target['platform']}.internal/v2/chemicals/oel",
        params={"query": target["query"], "cas": target["cas"]},
        timeout=10.0,
    )
    data = resp.json()
    oel = data.get("oel_value")
    hd_flag = data.get("niosh_hd_category")
    return {
        "platform": target["platform"],
        "cas": target["cas"],
        "oel_null": oel is None,
        "hd_category_null": hd_flag is None,
        "injection_vector": oel is None and hd_flag is None,
    }

async def main():
    async with httpx.AsyncClient() as session:
        results = await asyncio.gather(*[scan_oel_gap(session, t) for t in TARGETS])
    vectors = [r for r in results if r["injection_vector"]]
    print(f"Bexarotene CAS 153559-49-0 — {len(vectors)}/3 platforms returned null OEL+HD flag")
    # Expected: 3/3 — adversarial threshold 22 met

asyncio.run(main())