91³Ô¹ÏÍø

Watch CBS News

Earlier bus attack victim of man charged in CTA rape says assault could have been prevented with earlier action

A woman who was attacked by the man charged with sexually assaulting a woman in a wheelchair at a CTA station said that crime should not have happened, and wouldn't have if the city hadn't failed to step in.

The accused attacker's name is Rasheed Griffin, and he has a long criminal past. Police said the 23-year-old attacked another woman, who asked to be called Monae and whose identity CBS News Chicago is protecting, as she got off a CTA bus near Midway.

"The man just approached me and started punching me," she recalled. "This first punch sent me flying to the ground. I hit my head on the ground, and from there he was just over me, punching, punching."

She said the attack lasted seconds, but the trauma lingers.

"For a while, I was afraid to go outside," she said. "I'm just making sure I'm not by myself and I know that's not a good mental state."

A police report states Griffin was immediately arrested, but a detective said no felony charges would be pursued. Instead, he was charged with misdemeanor battery and released on an ankle monitor with an overnight curfew and ordered not to commit new crime on the CTA. But police say he did, just days later.

"I feel like we were failed by the city. Clearly he's a threat," Monae said.

While on his monitor, Griffin was arrested for not paying his fare and trespassing on the CTA. Then he failed to show up for court in Monae's case. When law enforcement found him days later, Griffin was locked up but he was free two days later, this time without a monitor, after pleading guilty in Monae's case.

He was sentenced to 35 days, which he had already spent on an ankle monitor.

"If y'all would've acted and took it more seriously, a more serios crime would have been prevented," Monae said.

Three days after Griffin was released, police said he attacked a woman in a wheelchair on the Red Line, wheeling her off the train and sexually assaulting her in an elevator.

"This could have been prevented," Monae said. "I feel like I was a warning for her."

Before either of those women had been attacked, in October, Griffin was arrested for an indecent sexual act, once again on the CTA, CBS News Chicago found.

"I don't feel like anybody fought for me. I don't feel like I mattered. I feel like I was robbed of my security," Monae said. "I just feel like we need a better plan or a better system."

After getting caught for the Red Line sexual assault, documents show Griffin said he was suffering from mental health concerns. Leading up to the attack, Griffin was also accused of several other crimes, including drug possession and resisting arrest. In those cases, charges were dropped. 

View CBS News In
CBS News App Open
Chrome Safari Continue
const link = doc.createElement('link'); link.rel = 'stylesheet'; link.href = '/fly/fly/bundles/cbsnewscontent/css/cmp-banner.min.css?v=fd53910ecf4604072044ab7c46d9b028'; doc.head.appendChild(link); doc.body.innerHTML = CONSENT_MESSAGE; } else { el.insertAdjacentHTML('afterend', CONSENT_MESSAGE); } }); } function hidePrivacyMessage() { // Remove from the main document document.querySelectorAll(`.${CONSENT_MESSAGE_CLASS}`).forEach(el => el.remove()); // Remove from inside any iframes document.querySelectorAll('iframe').forEach(iframe => { const doc = iframe.contentDocument || iframe.contentWindow.document; doc.querySelectorAll(`.${CONSENT_MESSAGE_CLASS}`).forEach(el => el.remove()); }); } function activateGatedScripts() { // Handle both new format (cmp-gated-script) and old OneTrust/Ketch format (optanon-category-4) const gatedScripts = Array.from(document.querySelectorAll('script.cmp-gated-script, script.optanon-category-4')); // Activate scripts sequentially with a small delay to avoid timing issues let delay = 0; gatedScripts.forEach(function(placeholder, index) { setTimeout(function() { // Skip if already processed if (placeholder.hasAttribute('data-cmp-processed')) { return; } placeholder.setAttribute('data-cmp-processed', 'true'); const newScript = document.createElement('script'); newScript.type = 'text/javascript'; // Try new format first (data-cmp-src), then fall back to old format (data-src) const src = placeholder.getAttribute('data-cmp-src') || placeholder.getAttribute('data-src'); if (src) { newScript.src = src; } else if (placeholder.textContent) { // Inline script - just copy the content newScript.textContent = placeholder.textContent; } // Handle new format attributes (data-cmp-attrs) - for both inline and external scripts const attrs = placeholder.getAttribute('data-cmp-attrs'); if (attrs) { const tempDiv = document.createElement('div'); tempDiv.innerHTML = '
<\/div>'; const tempAttrs = tempDiv.firstChild.attributes; for (let i = 0; i < tempAttrs.length; i++) { // For external scripts, allow defer/async. For inline scripts, skip them (not valid) if (src || (tempAttrs[i].name !== 'async' && tempAttrs[i].name !== 'defer')) { newScript.setAttribute(tempAttrs[i].name, tempAttrs[i].value); } } } // Copy other attributes from old OneTrust format for (let i = 0; i < placeholder.attributes.length; i++) { const attr = placeholder.attributes[i]; // Skip attributes we've already handled or don't want to copy if (!['class', 'data-src', 'data-type', 'data-cmp-src', 'data-cmp-attrs', 'data-cmp-processed', 'type', 'async', 'defer', 'src'].includes(attr.name)) { newScript.setAttribute(attr.name, attr.value); } } placeholder.parentNode.replaceChild(newScript, placeholder); // If external script, manually trigger window.onload handlers after it loads // This handles widgets that use window.onload for initialization if (src) { newScript.addEventListener('load', function() { // If page already loaded and script set a new onload handler, trigger it if (document.readyState === 'complete' && window.onload) { const originalOnload = window.onload; window.onload = null; // Clear temporarily to prevent loops originalOnload(); // Execute the handler } }); } }, delay); delay += 500; // 500ms delay between each script to allow full loading }); } cbsoptanon.onScriptsReady(function(cmp) { cmp.ot.targetingAllowed(function(allowed) { if (!allowed) { showPrivacyMessage(); } else { activateGatedScripts(); } }); cmp.ot.awaitInitialConsent(function(consent_model) { cmp.ot.addOnConsentChangedHandler(function() { cmp.ot.targetingAllowed(function(allowed) { if (allowed) { hidePrivacyMessage(); activateGatedScripts(); } else { showPrivacyMessage(); } }); }); }); });