Исследователи Массачусетского университета в Амхерсте (UMass Amherst) заставили некоторые просроченные бесконтактные кредитные карты Visa вновь оплачивать реальные покупки в США, в том числе на сумму до 500 долларов. Атака получила название Zombie Card, или «Зомби-карта». Она не взламывает закрытый ключ, цифровую подпись либо проверяемую эмитентом криптограмму. Вместо этого посредник меняет дату окончания срока действия, которую POS-терминал получает по NFC. Авторы работы — ведущий исследователь и докторант Khwarizmi Lab Раджа Хаснайн Анвар (Raja Hasnain Anwar), Джерард ДеКунья (Gerard DeCunha) и Мухаммад Таки Раза (Muhammad Taqi Raza). Результаты представлены на 35-м симпозиуме USENIX Security в Балтиморе 12–14 августа 2026 года. В 2024 году та же группа опубликовала на USENIX Security работу «Мы доверяем кошельку» (In Wallet We Trust) о разнобое в том, как банки и провайдеры цифровых кошельков контролируют жизненный цикл карт.
Для атаки нужна сама просроченная карта либо устойчивый NFC-доступ к ней на близком расстоянии, а также два устройства, образующие канал «человек посередине» между картой и кассовым терминалом. Счёт должен оставаться открытым с прежним основным номером карты, PAN. Такое бывает, когда банк выпускает замену, но сохраняет PAN. Последнее условие: эмитент при онлайн-авторизации не должен самостоятельно отвергать старую дату окончания действия. Настоящую дату новой карты знать не требуется — в данные для терминала можно вписать любую дату позднее дня покупки. Во всех контрольных опытах неизменённые просроченные карты отклонялись. Случаев применения Zombie Card преступниками пока не обнаружено.
У Visa дата записана в двух объектах EMV. Application Expiration Date находится в TLV-теге 5F24: её читает POS-терминал и по ней применяет локальные ограничения. Вторая запись входит в Track 2 Equivalent Data, тег 57, отправляемый банку при онлайн-авторизации. В Visa Kernel 3 эти представления не связаны единым криптографическим контролем. Быстрая подпись Dynamic Data Authentication, fDDA, проверяемая терминалом, не охватывает 5F24. Посредник подставляет туда будущую дату, сохраняя неизменным Track 2 для эмитента. Подпись и криптограмма после правки остаются действительными. Анвар объяснил в сообщении UMass Amherst: «Но она не защищена криптографически. Поэтому мы можем легко изменить её и обмануть POS-терминал».
Просроченный пластик способен пройти автономную аутентификацию, поскольку сроки сертификата эмитента и сертификата карты с интегральной схемой задаются отдельно от Application Expiration Date. Эти сертификаты нередко действуют дольше даты, напечатанной на карте, а закрытый ключ вообще не содержит понятия о сроке её действия. Есть и дополнительная слепая зона: по правилам Visa Kernel 3 передаваемые эмитенту Terminal Verification Results заполняются нулями. Банк может не узнать, проверял ли терминал срок карты, успешно ли завершилась проверка или она дала отрицательный результат.
Практическая схема состояла из двух Android-смартфонов с NFC, самописных эмуляторов карты и POS и соединения по Wi-Fi. Один телефон общался с картой, второй находился возле терминала SumUp Solo или SumUp Plus. Пересылаемый APDU-пакет перехватывался, в 5F24 появлялась будущая дата, а тег 57 оставался прежним. Обычная ретрансляция добавляла около 20 миллисекунд на цикл APDU, ретрансляция с правкой — примерно 50 миллисекунд; среднее время операции составляло около 415 миллисекунд при лимите EMV в 500 миллисекунд на команду. Ни карты, ни терминалы в опытах не поддерживали необязательный Relay Resistance Protocol (RRP), способный заметить лишнюю задержку. Код посредника исследователи не раскрыли, опубликовав лишь очищенные журналы транзакций. На первой странице работы стоит значок проверки артефактов USENIX со статусом Available.
Предварительное исследование охватило пять крупных банков США, обозначенных как Bank A, Bank B, Bank C, Bank D и Bank E, и более общие манипуляции с транзакциями Europay, Mastercard и Visa (EMV). При изменении флага Consumer Device Cardholder Verification Method (CDCVM) операции прошли в большинстве из пяти банков. По словам Анвара, тревогу вызывала та же причина, что и у Zombie Card: изменения данных по дороге не обнаруживались. Просроченные и заменяющие их физические карты отдельно проверяли у трёх эмитентов. Bank A принимал изменённую дату и допускал одновременную работу нескольких карт. Bank B распознавал подмену и разрешал операции лишь с одной активной картой. Bank D, использовавший ядро Discover, замечал изменение, но всё равно позволял нескольким картам работать параллельно. Анвар сказал The Hacker News: «В отрасли нет единого мнения о том, как безопасно обращаться с картами, срок действия которых заканчивается». Банки и платёжные сети расставляют приоритеты по-разному, поэтому и уязвимости у них различаются.
Сопоставление платёжных ядер показало, что проблема не универсальна. В Mastercard Kernel 2 терминал при разборе READ RECORD сравнивает обе даты, считает несовпадение ошибкой карточных данных и отклоняет платёж без перехода к онлайн-авторизации. В American Express Kernel 4 дата обязательна и включена в статические данные, защищённые автономной аутентификацией: её правка нарушает хеш при проверке подписи. Discover Kernel 6 применяет Combined Dynamic Data Authentication, связывающую возвращённые картой TLV-объекты с проверяемым хешем транзакции, поэтому подмена даты также завершалась отказом. У Visa Kernel 3 тег 5F24 выпадает из fDDA, две даты не сверяются последовательно, а результаты терминальной проверки уходят банку в виде нулей.
С оживлённой картой Bank A исследователи провели на собственном терминале платежи на 1, 100 и 500 долларов. Терминал был зарегистрирован в торговой категории Professional Services. Затем прошли две покупки вне лаборатории: 2,79 доллара у розничного продавца и 3,19 доллара в продуктовом магазине на территории кампуса. Терминал Bank B также принял изменённую дату во всех трёх лабораторных опытах — на 1, 100 и 500 долларов, — однако эмитент отклонил каждую авторизацию и предложил владельцу воспользоваться заменяющей картой. Розничная и продуктовая покупки подтвердили работоспособность метода за пределами собственного терминала, но не дают оснований переносить результат на всех продавцов и эмитентов.
На Discover Kernel 6 обнаружилась другая неприятность жизненного цикла. Одну карту автоматически заменили, когда до окончания её действия оставалось менее трёх месяцев. До наступления даты, указанной на старой карте, и оригинал, и замена совершали обычные, не модифицированные платежи по одному счёту. Подмена 5F24 на этом ядре не работала. Точную продолжительность периода до истечения срока Анвар сообщил позднее в комментариях, но в научной работе она не указана. Этот случай показывает различие банковских правил: выпуск замены не всегда означает немедленное отключение прежнего пластика.
Все испытания проводились в США. Пять банков участвовали в предварительной проверке манипуляций с EMV, однако опыты именно с просроченными и заменяющими физическими картами затронули лишь трёх эмитентов. Авторы не выполняли полного замера по продавцам, поставщикам терминалов, банковским конфигурациям и всей платёжной инфраструктуре. О проблеме сообщили Visa и затронутым банкам в мае 2025 года, повторное обращение состоялось в декабре 2025-го. Visa приняла отчёт на первичное рассмотрение, а её red team, по имеющимся сведениям, пыталась воспроизвести результаты. К моменту принятия работы ни Visa, ни банки не рассказали о состоянии и характере исправлений; CVE не присвоен. Visa публично не комментировала исследование и не ответила на запрос The Hacker News. По состоянию на 20 августа 2026 года не было опубликовано бюллетеней, рекомендаций либо уведомлений от Visa, EMVCo, Mastercard, Discover, American Express и SumUp. Обновление от этой даты уточнило рамки пятибанкового исследования, различия именно в политике трёх эмитентов и период одновременной работы автоматически заменённой карты с её преемницей.
Параллельно сингапурская компания Group-IB описала Android-вредонос WindRelay, ранее не встречавшееся ПО для NFC-ретрансляции. Его распространяли вместе с Android-трояном удалённого доступа SpyNote, используя социальную инженерию во время телефонных разговоров. Целями становились жители Чехии, Словакии и Словении. В отчёте от 12 августа 2026 года перечислены 23 образца, загруженные на VirusTotal с ноября 2025-го по июль 2026-го, и четыре IP-адреса командно-управляющих серверов C2. WindRelay не меняет срок действия: он в реальном времени пересылает данные активной карты, используя ту же базовую двухустройственную NFC-схему, что и стенд Zombie Card. Формулировка Group-IB звучит так: «Этот случай показывает, что современное мошенничество редко опирается на один приём».
Исправление требует связать Application Expiration Date и поля проверки держателя с подписью, доступной эмитенту, автономной аутентификацией либо определённым ядром хешем, который перестанет сходиться после вмешательства. Терминал должен сравнивать дату для локальной проверки с датой, отправляемой банку, а сведения о несовпадении — доходить до эмитента через реальные Terminal Verification Results или равнозначный индикатор. Банкам стоит считать идентификатором учётных данных пару PAN + срок действия и отклонять дату, не совпадающую с действующей картой для этого PAN. RRP способен затруднить ретрансляцию по заметной задержке. Владельцу карты безопаснее физически разрушить чип и магнитную полосу просроченного пластика, а не выбрасывать его целиком, и продолжать проверять операции даже по закрытому счёту.
Для атаки нужна сама просроченная карта либо устойчивый NFC-доступ к ней на близком расстоянии, а также два устройства, образующие канал «человек посередине» между картой и кассовым терминалом. Счёт должен оставаться открытым с прежним основным номером карты, PAN. Такое бывает, когда банк выпускает замену, но сохраняет PAN. Последнее условие: эмитент при онлайн-авторизации не должен самостоятельно отвергать старую дату окончания действия. Настоящую дату новой карты знать не требуется — в данные для терминала можно вписать любую дату позднее дня покупки. Во всех контрольных опытах неизменённые просроченные карты отклонялись. Случаев применения Zombie Card преступниками пока не обнаружено.
У Visa дата записана в двух объектах EMV. Application Expiration Date находится в TLV-теге 5F24: её читает POS-терминал и по ней применяет локальные ограничения. Вторая запись входит в Track 2 Equivalent Data, тег 57, отправляемый банку при онлайн-авторизации. В Visa Kernel 3 эти представления не связаны единым криптографическим контролем. Быстрая подпись Dynamic Data Authentication, fDDA, проверяемая терминалом, не охватывает 5F24. Посредник подставляет туда будущую дату, сохраняя неизменным Track 2 для эмитента. Подпись и криптограмма после правки остаются действительными. Анвар объяснил в сообщении UMass Amherst: «Но она не защищена криптографически. Поэтому мы можем легко изменить её и обмануть POS-терминал».
Просроченный пластик способен пройти автономную аутентификацию, поскольку сроки сертификата эмитента и сертификата карты с интегральной схемой задаются отдельно от Application Expiration Date. Эти сертификаты нередко действуют дольше даты, напечатанной на карте, а закрытый ключ вообще не содержит понятия о сроке её действия. Есть и дополнительная слепая зона: по правилам Visa Kernel 3 передаваемые эмитенту Terminal Verification Results заполняются нулями. Банк может не узнать, проверял ли терминал срок карты, успешно ли завершилась проверка или она дала отрицательный результат.
Практическая схема состояла из двух Android-смартфонов с NFC, самописных эмуляторов карты и POS и соединения по Wi-Fi. Один телефон общался с картой, второй находился возле терминала SumUp Solo или SumUp Plus. Пересылаемый APDU-пакет перехватывался, в 5F24 появлялась будущая дата, а тег 57 оставался прежним. Обычная ретрансляция добавляла около 20 миллисекунд на цикл APDU, ретрансляция с правкой — примерно 50 миллисекунд; среднее время операции составляло около 415 миллисекунд при лимите EMV в 500 миллисекунд на команду. Ни карты, ни терминалы в опытах не поддерживали необязательный Relay Resistance Protocol (RRP), способный заметить лишнюю задержку. Код посредника исследователи не раскрыли, опубликовав лишь очищенные журналы транзакций. На первой странице работы стоит значок проверки артефактов USENIX со статусом Available.
Предварительное исследование охватило пять крупных банков США, обозначенных как Bank A, Bank B, Bank C, Bank D и Bank E, и более общие манипуляции с транзакциями Europay, Mastercard и Visa (EMV). При изменении флага Consumer Device Cardholder Verification Method (CDCVM) операции прошли в большинстве из пяти банков. По словам Анвара, тревогу вызывала та же причина, что и у Zombie Card: изменения данных по дороге не обнаруживались. Просроченные и заменяющие их физические карты отдельно проверяли у трёх эмитентов. Bank A принимал изменённую дату и допускал одновременную работу нескольких карт. Bank B распознавал подмену и разрешал операции лишь с одной активной картой. Bank D, использовавший ядро Discover, замечал изменение, но всё равно позволял нескольким картам работать параллельно. Анвар сказал The Hacker News: «В отрасли нет единого мнения о том, как безопасно обращаться с картами, срок действия которых заканчивается». Банки и платёжные сети расставляют приоритеты по-разному, поэтому и уязвимости у них различаются.
Сопоставление платёжных ядер показало, что проблема не универсальна. В Mastercard Kernel 2 терминал при разборе READ RECORD сравнивает обе даты, считает несовпадение ошибкой карточных данных и отклоняет платёж без перехода к онлайн-авторизации. В American Express Kernel 4 дата обязательна и включена в статические данные, защищённые автономной аутентификацией: её правка нарушает хеш при проверке подписи. Discover Kernel 6 применяет Combined Dynamic Data Authentication, связывающую возвращённые картой TLV-объекты с проверяемым хешем транзакции, поэтому подмена даты также завершалась отказом. У Visa Kernel 3 тег 5F24 выпадает из fDDA, две даты не сверяются последовательно, а результаты терминальной проверки уходят банку в виде нулей.
С оживлённой картой Bank A исследователи провели на собственном терминале платежи на 1, 100 и 500 долларов. Терминал был зарегистрирован в торговой категории Professional Services. Затем прошли две покупки вне лаборатории: 2,79 доллара у розничного продавца и 3,19 доллара в продуктовом магазине на территории кампуса. Терминал Bank B также принял изменённую дату во всех трёх лабораторных опытах — на 1, 100 и 500 долларов, — однако эмитент отклонил каждую авторизацию и предложил владельцу воспользоваться заменяющей картой. Розничная и продуктовая покупки подтвердили работоспособность метода за пределами собственного терминала, но не дают оснований переносить результат на всех продавцов и эмитентов.
На Discover Kernel 6 обнаружилась другая неприятность жизненного цикла. Одну карту автоматически заменили, когда до окончания её действия оставалось менее трёх месяцев. До наступления даты, указанной на старой карте, и оригинал, и замена совершали обычные, не модифицированные платежи по одному счёту. Подмена 5F24 на этом ядре не работала. Точную продолжительность периода до истечения срока Анвар сообщил позднее в комментариях, но в научной работе она не указана. Этот случай показывает различие банковских правил: выпуск замены не всегда означает немедленное отключение прежнего пластика.
Все испытания проводились в США. Пять банков участвовали в предварительной проверке манипуляций с EMV, однако опыты именно с просроченными и заменяющими физическими картами затронули лишь трёх эмитентов. Авторы не выполняли полного замера по продавцам, поставщикам терминалов, банковским конфигурациям и всей платёжной инфраструктуре. О проблеме сообщили Visa и затронутым банкам в мае 2025 года, повторное обращение состоялось в декабре 2025-го. Visa приняла отчёт на первичное рассмотрение, а её red team, по имеющимся сведениям, пыталась воспроизвести результаты. К моменту принятия работы ни Visa, ни банки не рассказали о состоянии и характере исправлений; CVE не присвоен. Visa публично не комментировала исследование и не ответила на запрос The Hacker News. По состоянию на 20 августа 2026 года не было опубликовано бюллетеней, рекомендаций либо уведомлений от Visa, EMVCo, Mastercard, Discover, American Express и SumUp. Обновление от этой даты уточнило рамки пятибанкового исследования, различия именно в политике трёх эмитентов и период одновременной работы автоматически заменённой карты с её преемницей.
Параллельно сингапурская компания Group-IB описала Android-вредонос WindRelay, ранее не встречавшееся ПО для NFC-ретрансляции. Его распространяли вместе с Android-трояном удалённого доступа SpyNote, используя социальную инженерию во время телефонных разговоров. Целями становились жители Чехии, Словакии и Словении. В отчёте от 12 августа 2026 года перечислены 23 образца, загруженные на VirusTotal с ноября 2025-го по июль 2026-го, и четыре IP-адреса командно-управляющих серверов C2. WindRelay не меняет срок действия: он в реальном времени пересылает данные активной карты, используя ту же базовую двухустройственную NFC-схему, что и стенд Zombie Card. Формулировка Group-IB звучит так: «Этот случай показывает, что современное мошенничество редко опирается на один приём».
Исправление требует связать Application Expiration Date и поля проверки держателя с подписью, доступной эмитенту, автономной аутентификацией либо определённым ядром хешем, который перестанет сходиться после вмешательства. Терминал должен сравнивать дату для локальной проверки с датой, отправляемой банку, а сведения о несовпадении — доходить до эмитента через реальные Terminal Verification Results или равнозначный индикатор. Банкам стоит считать идентификатором учётных данных пару PAN + срок действия и отклонять дату, не совпадающую с действующей картой для этого PAN. RRP способен затруднить ретрансляцию по заметной задержке. Владельцу карты безопаснее физически разрушить чип и магнитную полосу просроченного пластика, а не выбрасывать его целиком, и продолжать проверять операции даже по закрытому счёту.