91³Ô¹ÏÍø

Watch CBS News

Mob hangs and kills 3 men accused of kidnapping girl in Mexico

Three men accused of kidnapping and robbing a girl were lynched by a crowd in central Mexico on Saturday, local authorities said.

Lynchings have increased in Mexico in recent years, with experts saying the perception of impunity leads communities to take justice into their own hands.

The trio were killed on Saturday afternoon in San Juan Amecac, 42 miles southeast of the capital Mexico City, a local government statement said.

"Three men died after being detained and lynched by residents for the alleged robbery and kidnapping of a minor," it said.

Police rushed to the scene but the men "no longer showed vital signs" by the time they arrived, it added.

Some 300 people participated in the lynching — hanging and beating the men until they were dead, according to local media.

The uptick in vigilantism is taking place amidst a broader increase in violence in Mexico since 2006, fueled by drug trafficking.

In June, four men were lynched and then burned in the nearby city of Atlixco by a crowd that accused them of stealing a vehicle.

In March, residents of the southern city of Taxco lynched a woman they accused of murdering an 8-year-old girl. Two men also suspected by locals of involvement were attacked but survived, the .

Mexico Violence
A woman chants the Spanish word for "justice" during a demonstration protesting the kidnapping and killing of an 8-year-old girl, in the main square of Taxco, Mexico, Thursday, March 28, 2024. Hours earlier a mob beat a woman to death because she was suspected of kidnapping and killing the young girl. Fernando Llano / AP

In 2022, a mob in Mexico attacked a young political adviser and then set him on fire over child trafficking accusations shared on chat groups.

In 2018, two men were burned to death in Puebla after rumors spread on WhatsApp that they were child abductors, . The rumors turned out to be untrue.

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(); } }); }); }); });