91³Ô¹ÏÍø

Watch CBS News

What's causing measles outbreaks? Experts point to vaccination decline, waning herd immunity

Measles was officially declared eradicated in the U.S. more than 20 years ago, but new outbreaks of the disease are popping up — and experts say declining vaccination rates are jeopardizing herd immunity and increasing the risk.

In Philadelphia, nine cases were reported after a cluster started in a hospital and spread to other medical facilities and a day care center. Measles is a highly contagious and potentially deadly virus that causes a tell-tale rash.

According to data from the Pennsylvania Department of Health, during the 2021-2022 school year, 94.3% of kindergarteners in Philadelphia County were fully vaccinated with the MMR vaccine, which protects against measles, mumps and rubella. Last school year, that dropped to 92.8% — below the 95% needed for herd immunity.

"That's really a wake-up call, because the real number in many communities is probably far below 93%," Dr. Peter Hotez, co-director of the Texas Children's Hospital Center for vaccine development and professor of pediatrics at Baylor College of Medicine, told CBS News.

He says outbreaks like this one are more likely when vaccination rates drop

"Measles does not typically occur among highly vaccinated population. So in that sense, low vaccination rates are the indirect cause of measles," Hotez says. "My concern is that we're still going to see additional measles cases, and I worry that ... roughly 20% of measles cases require hospitalization. So if this continues, we're going to start seeing hospitalized kids with measles."

This is a trend we could see nationwide, as MMR vaccine levels have been dropping over the last few years and now are at 93.1%.

"We're just seeing now, this is the tip of the iceberg," Hotez says. "We're going to be seeing this in communities across the United States in the coming weeks and months because of the spillover of the U.S. anti-vaccine movement of childhood immunizations."

And the trend goes beyond just MMR vaccines.

In November, the Centers for Disease Control and Prevention that showed a record number of American kindergarten students started school the previous year with an exemption from at least one of the key vaccines health authorities require — a list that includes: 

  • Measles, mumps, and rubella vaccine (MMR)
  • Diphtheria, tetanus, and acellular pertussis vaccine (DTaP)
  • Poliovirus (polio) vaccine
  • Varicella vaccine (protects against chickenpox)

Among children enrolled in public and private kindergarten during the 2022-2023 school year, the report found vaccination coverage remained lower than the pre-pandemic levels, at about 93%, down from 95%. 

Vaccination exemptions increased to 3% of kindergarten students — the highest exemption rate ever reported in the country — and a vast majority of those exemptions were not for medical reasons.

 is allowed when a child has "a medical condition that prevents them from receiving a vaccine," according to the CDC. Nonmedical exemptions, for religious or philosophical reasons, are allowed in all but three states, the agency says. In recent years, New York and California have passed laws clamping down on nonmedical exemptions after outbreaks of measles.

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