91³Ô¹ÏÍø

Many of the eye drops are likely no longer in stores, as the FDA said CVS, Rite Aid and Target were removing the products from store shelves and websites.

The recall notice urged distributors and retailers to stop selling the products and for consumers to return them.

Amazon removes 7 eye drop products from site after FDA warning

Amazon said its website was no longer offering seven eye drop products after the FDA warned the e-commerce giant that their distribution violated federal regulations and raised public health concerns. 

The pulled products named in the agency's letter are: Similasan Pink Eye Relief, The Goodbye Company Pink Eye, Can-C Eye Drops, Optique 1 Eye Drops, OcluMed Eye Drops, TRP Natural Eyes Floaters Relief and Manzanilla Sophia Chamomile Herbal Eye Drops.  

"We require all products offered in our store to comply with applicable laws and regulations. The products in question have been investigated and removed," an Amazon spokesperson told CBS MoneyWatch on Friday in an emailed statement.

Eye drops recalled in previous rounds

The FDA's warning prompted Cardinal Health in early November to  six Leader brand eye products, while Harvard Drug Group  Rugby Laboratories brand eye drops. 

Those warnings included the agency in August advising people not to buy "Dr. Berne's MSM Drops 5% Solution" and "LightEyez MSM Eye Drops – Eye Repair," saying they presented serious health risks, including vision- and life-threatening infections. 

The recalls are among eight such actions involving the FDA and eye drops this year, starting with news in early February that the Centers for Disease Control and Prevention (CDC) was investigating a cluster of infections related to artificial tears. 

Federal inspectors found dozens of problems at Indian manufacturer Global Pharma Healthcare amid the multistate outbreak of rare and extensively drug-resistant bacteria linked by eye drops made by the company, which were branded as EzriCare and Delsam Pharma.

The CDC ultimately identified 81 patients in 18 states. Of that that number, four people died, 14 reported vision loss and another four had to have their eyeballs surgically removed, the agency said in its last update in May. 

How can I make sure my eye drops are safe?

Eye drops must be sterile to be safe, and therefore need "much finer oversight on the manufacturing side" to ensure the products aren't contaminated, Carri Chan, a business professor at Columbia University, recently told CBS MoneyWatch.

The FDA maintains an  of eye drop products that people should get rid of. Users can also consult an eye drop manufacturer's website to check if a product has been recalled. 

Dr. Christopher Starr, a spokesperson for the American Academy of Ophthalmology, said people should seek medical help immediately if they have adverse reactions to eye drops, such as discharge, redness or pain, which can indicate an infection. People should also check a product's expiration date before use.

Consumers with questions about the recall can contact Kilitch at regulatory@kilitchhealthcare.com or Velocity Pharma, Kilitch's distributor, at regulatory@velocitypharma.com. Eye drop users who experience adverse reactions can file a report with the FDA  or by downloading and.

—Elizabeth Napolitano contributed to this report.

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