91³Ô¹ÏÍø

Watch CBS News

N.Y. governor's race between Kathy Hochul, Nassau County Exec Bruce Blakeman tightens, poll shows

Nassau County Executive Bruce Blakeman, the Republican gubernatorial candidate, is gaining on incumbent Kathy Hochul in the race for New York governor, according to a new poll. 

Hochul still has a commanding 13-point lead over Blakeman, 47-34%, of 804 registered New York voters. But that's down from a 51-31% lead just a month before. 

"We're closing the gap at lightning speed because New Yorkers need real relief from Kathy Hochul's cost of living crisis, and they'll get it with my plan to cut income taxes, slash utility bills in half, and make New York affordable," Blakeman said in a statement. 

"Every day, Kathy Hochul is delivering for New Yorkers – lowering costs, investing billions to keep families safe, and standing up to Donald Trump – while Bruce Blakeman is offering the opposite: higher prices, Medicaid cuts, and letting Trump's ICE trample on New Yorkers' rights. That's how you become a six-time loser, and it's why Blakeman is being rejected again," Hochul spokesperson Ryan Radulovacki said.

The poll finds Hochul's favorability rating to be essentially stable, 45-42%, as compared to last month's 46-42%. Her job approval rating also hasn't substantially shifted, 52-40%, as compared to 53-41%. 

Blakeman's biggest hurdle appears to be name recognition. Some 64% of voters said they'd never heard of him or didn't know enough about him to form an opinion, according to the poll. 

"Interestingly, Hochul's standing with New Yorkers is essentially the same as last month – a small plurality views her favorably, and a small majority approves of the job she's doing as governor – as is Blakeman's, yet the race between the two has tightened a little," Siena pollster Steven Greenberg said. "Three-quarters of Democrats continue to support Hochul, and more than three-quarters of Republicans continue to support Blakeman, but now independents favor Blakeman by seven points, after siding with Hochul by five points."  

That same poll also had a few additional findings, unrelated to this year's gubernatorial matchup. The poll found New York City Mayor Zohran Mamdani's favorability at 44-37% statewide, with 54-30% support for Hochul and the state legislature allowing New York City to raise the personal income taxes for residents earning $1 million or more, a signature proposal of the mayor's.

The poll also found statewide support for making it easier to buy pepper spray.

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