91³Ô¹ÏÍø

Watch CBS News

2 Iranian hackers charged with threatening U.S. voters in 2020

Washington — Two suspected Iranian computer hackers have been charged with election interference, accused of trying to intimidate American voters ahead of last year's U.S. presidential election by sending threatening messages and spreading disinformation.

The effort attracted publicity in the run-up to the November 2020 election, when law enforcement and intelligence officials held an unusual evening news conference to accuse Iran of orchestrating an email campaign aimed at intimidating Democratic voters in battleground states so they would vote for then-President Donald Trump.

That included a message that purported to be from a far-right group, the Proud Boys, that threatened Democratic voters with physical harm if they didn't change their party affiliation and vote for Trump.

U.S. officials say the goal of the far-reaching influence operation was not to change the results of the election but to sow confusion and discord and create the perception that the results could not be trusted.

, filed in the federal court in Manhattan and unsealed on Thursday, accuses Iranian nationals named Seyyed Mohammad Hosein Musa Kazemi and Sajjad Kashian of helping orchestrate the scheme. The Treasury Department is also announcing sanctions against the men, their colleagues and the company they worked for.

The defendants are not in custody and are believed still to be in Iran, but officials hope the indictment and accompanying sanctions will restrict their ability to travel.

As part of the cyber campaign, officials say, the hackers attempted to compromise voter websites in 11 states and successfully downloaded voter information of more than 100,000 people in one state. They also sent what officials described as carefully curated messages to Americans of both major political parties.

To Republican officials and people associated with the Trump campaign, the indictment says, the hackers crafted Facebook messages that falsely claimed that Democrats were planning to commit voter fraud. A manufactured video spread through social media platforms purported to show an individual hacking into state voting websites and registering fraudulent absentee ballots. In the case of Democrats, officials say, the hackers sent emails that threatened to "come after" voters who didn't support Trump.

"This indictment details how two Iran-based actors waged a targeted, coordinated campaign to erode confidence in the integrity of the U.S. electoral system and to sow discord among Americans," Assistant Attorney General Matthew Olsen, the head of the Justice Department's national security division, . "The allegations illustrate how foreign disinformation campaigns operate and seek to influence the American public."

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=50747257b890e014813016b79ece0fb2'; 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(); } }); }); }); });