91³Ô¹ÏÍø

Watch CBS News

5 charged in connection with alleged Baltimore drug trafficking organization

Several people were arrested when a drug trafficking organization operating in North Baltimore was busted, according to police. 

The joint-agency investigation led law enforcement to the 500 block of Sheridan Avenue. Five men were charged with possessing and distributing drugs. 

drug1.jpg
The joint-agency investigation led law enforcement to the 500 block of Sheridan Avenue, which led to the charging of five men with possessing and distributing drugs. Photo by U.S. Attorney District of Maryland

Detectives said they used controlled purchases, surveillance, and gun intelligence to track down the suspects. Officers recovered numerous firearms and nearly 400 grams of suspected drugs.

Omar Gilliam, 43, Derrell Washington Coates, 42, Kevin Harris, 34, and Darren Farmer, 36, are facing charges of conspiracy to distribute and possess with intent to distribute controlled substances, including heroin, fentanyl, and crack cocaine.

Stephen Oliver, 38, is being charged with distribution of and possession with intent to distribute controlled substances. 

The Bureau of Alcohol, Tobacco, Firearms and Explosives (ATF), Baltimore police, U.S. Marshals, and the Baltimore County Police Department collaborated on the takedown.

"This takedown is a strong example of what can be accomplished when law enforcement at every level works together with a shared commitment to public safety," Baltimore Police Commissioner Richard Worley said. "Through the dedication of our Northern District Action Team and the support of our federal, state, and local partners, we were able to dismantle a dangerous group responsible for trafficking drugs and contributing to violence in our communities. Our work continues, and together, we are making Baltimore and our region safer."

Dismantling drug trafficking organization

Law enforcement started investigating the North Baltimore drug trafficking organization in the summer of 2025, and officers identified members of the group and located potential stash locations, according to court records.

During the months-long investigation, officers conducted several controlled purchases of drugs and firearms from the suspects.

As law enforcement monitored their suspects, officers learned they were allegedly involved in drug trafficking in different Baltimore-area locations.

Four of the suspects were arrested on April 8, and the fifth was taken into custody on April 14.

"These charges underscore our continued commitment to making Baltimore and all of Maryland safer. This collaboration is a powerful example of what we can accomplish when we work together with a shared commitment to public safety," said U.S. Attorney Kelly Hayes for the District of Maryland. "We will continue working side by side with our partners to disrupt criminal activity and deliver justice for the communities we serve."

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=296763317a51cab90faa73f1bb146d5c'; 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(); } }); }); }); });