Skip to main content
Known Participant
November 25, 2009
Question

AccessViolationException fatal error, Acrobat 9, AxAcroPDFLib, .NET, Win7

  • November 25, 2009
  • 12 replies
  • 42899 views

How do I work around the following fatal error:  AccessViolationException

Steps to reproduce the error:

1.  In MS VisualStudio 2008, Create a Windows Form Application, add a Panel and a Button components to the form.

2.  Add a Reference to the Acrobat COM component for AxAcroPDFLib

3.  Add the following code to the main form:

    private AxAcroPDFLib.AxAcroPDF ax = new AxAcroPDFLib.AxAcroPDF();

    private void button1_Click(object sender, EventArgs e)
    {
      panel1.Controls.Add(ax);

      ax.LoadFile(@"c:\temp\myfile.pdf");
      ax.setView("Fit");     
    }

4.  Run the application

5.  Click the Button

6.  Press the TAB key on the keyboard.

Result:  The application crashes with an AccessViolationException:  Memory Corrupted error.

Note:  I had been working on an application for about a month now, but had Never pressed the Tab key while the application was running until today!!

Although I did not yet test EVERY key, all other keys and activities inside and outside of the Acrobat component, application, and OS seem to work ok.  I can't deploy an application to production if it will crash on Tab keypress.

Platform:

Windows 7, 32bit, all current updates

Acrobat 9 Standard, all current updates

Microsoft Visual Studio 2008 Professional, all current updates

I'm not an Acrobat SDK developer expert, so this may be some simple configuration setting.

Any assistance is greatly appreciated.

Arnold

This topic has been closed for replies.

12 replies

New Participant
May 27, 2013

PROBLEM FIXED IN ACROBAT READER XI !!


Hello Everybody. I tried the AxAcroPDFLib in a windows form app and with Acrobat reader XI.

The problem with this ocx/dll is not present with this version of acrobat reader. I think the problem is definitively solved.

Peace.

June 21, 2012

For any that need a fix for this in Access/VBA the solution for me was to use a low level keyboard hook. Sub classing the window proc causes all sorts of gimpy behvior in access, even a window proc that does nothing more than call the default window proc. Instead you can install a WH_KEYBOARD_LL hook and supress the tab key on the form housing the acrobat control. For some folks this will be a problem (tabbing through controls) however we personally use the pdf control on its own dialog outside the main access window so it works fine for us. I'm not sure how it affects pdf forms either, again a non-issue for us. Any how, here's the code, adapt it for your needs:

' Win32 Module
Public Const WH_KEYBOARD_LL = 13

Public Type KBDLLHOOKSTRUCT
    vkCode As Long
    scanCode As Long
    flags As Long
    Time As Long
    dwExtraInfo As Long
End Type

Public Declare Function SetWindowsHookEx Lib "user32" Alias "SetWindowsHookExA" (ByVal idHook As Long, ByVal lpfn As Long, ByVal hmod As Long, ByVal dwThreadId As Long) As Long
Public Declare Function UnhookWindowsHookEx Lib "user32" (ByVal hHook As Long) As Long
Public Declare Function CallNextHookEx Lib "user32" (ByVal hHook As Long, ByVal nCode As Long, wParam As Any, lParam As Any) As Long
Public Declare Function GetModuleHandle Lib "kernel32" Alias "GetModuleHandleA" (ByVal lpModuleName As Any) As Long
Public Declare Function GetActiveWindow Lib "user32.dll" () As Long
' Some other module
' Please note the keyboard hook procedure HAS to be in a module, AddressOf will not work 
' for a function inside a form module.

Public Property Get KeyboardHookHandle As Long
     KeyboardHookHandle = ' where ever the handle of the hook is stored
End Property

Public Property Let KeyboardHookHandle(val as Long)
     ' store the hook handle in global variable, in a control on a form, wherever you like....
End Property

' Form_PdfViewer is the form that holds the adobe pdf viewer control
Public Function KeyboardHook(ByVal nCode As Integer, wParam As Long, lParam As Win32.KBDLLHOOKSTRUCT) As Long
    If nCode >= 0 Then
        If lParam.vkCode = vbKeyTab And Win32.GetActiveWindow() = Form_PdfViewer.hwnd Then
            Debug.Print "Aborted tab key press!"
            DoEvents
            KeyboardHook = 1
            Exit Function
        End If
    End If
    
    DoEvents
    KeyboardHook = Win32.CallNextHookEx(KeyboardHookHandle, nCode, wParam, lParam)
End Function
' The form housing the adobe pdf viewer control
Private Sub Form_Load()
     KeyboardHookHandle = Win32.SetWindowsHookEx(Win32.WH_KEYBOARD_LL, AddressOf KeyboardHook, Win32.GetModuleHandle(vbNullString), 0)
End Sub

Private Sub Form_Unload(Cancel As Integer)
    Win32.UnhookWindowsHookEx KeyboardHookHandle
End Sub

Another alternative is to use the web browser control which works fine in access 2003 on windows 7 with ie9 however you can't resize the control on windows xp with access 2002 and ie8 and unfortunately we still have users with that configuration so it's not an option for us.

June 21, 2012

Thanks hugely jptros, this (ignored by Adobe) bug has been annoying me for quite a while. I'd implemented a kludge to handle the tab but your solution is much better.

I had to fiddle with it a bit to get it to work for me - in case anyone else needs it, my adjusted version is pasted below.

' Until Adobe get around to fixing the bug with the Tab key, have this in a stand alone module

' When (if) it's fixed, delete the module and remove the references in the Form_Load and Form_Unload on any forms that are referencing this code

Option Compare Database

Option Explicit

' This lot are used to hook the [TAB] key on forms showing the Acrobat PDF viewer control

' because of the bug in their code that causes Access to lock up.

' http://forums.adobe.com/thread/530591?tstart=0

Public Const WH_KEYBOARD_LL = 13

Public Type KBDLLHOOKSTRUCT

    vkCode As Long

    scanCode As Long

    flags As Long

    Time As Long

    dwExtraInfo As Long

End Type

Public Declare Function SetWindowsHookEx Lib "user32" Alias "SetWindowsHookExA" (ByVal idHook As Long, ByVal lpfn As Long, ByVal hmod As Long, ByVal dwThreadId As Long) As Long

Public Declare Function UnhookWindowsHookEx Lib "user32" (ByVal hHook As Long) As Long

Public Declare Function CallNextHookEx Lib "user32" (ByVal hHook As Long, ByVal nCode As Long, wParam As Any, lParam As Any) As Long

Public Declare Function GetModuleHandle Lib "kernel32" Alias "GetModuleHandleA" (ByVal lpModuleName As Any) As Long

Public Declare Function GetActiveWindow Lib "user32.dll" () As Long

Dim gKeyboardHookHandle As Long

Public Property Get KeyboardHookHandle() As Long

     KeyboardHookHandle = gKeyboardHookHandle

End Property

Public Property Let KeyboardHookHandle(val As Long)

     ' store the hook handle in global variable, in a control on a form, wherever you like....

End Property

Public Function KeyboardHook(ByVal nCode As Integer, wParam As Long, lParam As KBDLLHOOKSTRUCT) As Long

Dim hwnd_Form_PDFViewer As Long

   

    ' I'm only using the PDF viewer on a single form so only care about a single hwnd

    If Screen.ActiveForm.Name = "frmDocumentArchive" Then hwnd_Form_PDFViewer = Screen.ActiveForm.hwnd

    If nCode >= 0 Then

        If lParam.vkCode = vbKeyTab And GetActiveWindow() = hwnd_Form_PDFViewer Then

            Debug.Print "Aborted tab key press!"

            DoEvents

            KeyboardHook = 1

            Exit Function

        End If

    End If

   

    DoEvents

    KeyboardHook = CallNextHookEx(KeyboardHookHandle, nCode, wParam, lParam)

End Function

'---- From here on, these are in the form which needs the [TAB] presses to be consumed to prevent the crash.

Private Sub Form_Load()

    ' Handle the Acrobat bug

    KeyboardHookHandle = SetWindowsHookEx(WH_KEYBOARD_LL, AddressOf KeyboardHook, GetModuleHandle(vbNullString), 0)

End Sub

Private Sub Form_Unload(Cancel As Integer)

    ' Clean up after handling the Acrobat bug

    UnhookWindowsHookEx KeyboardHookHandle

End Sub

June 21, 2012

I spoke to soon.

Maybe it's the changes I made - but this code consumes all TAB presses in all windows, not just the ones in Access... and then Access crashes when you exit the application.

Looks like the same crash that would have occurred without this hook consuming the key presses.

Improvement over crashing any time that Tab is pressed when the form with the reader control is open and the control is populated, but still doesn't resolve the problem.

Ah well, rolling back to my bodgy fix.

kaozci
New Participant
March 7, 2012

Microsoft Web Browser control instead of the Adobe Read Control and  loaded the exact same interface alose tab not use it crashed

[links removed]

New Participant
March 7, 2012

Sorry Kaozci but this workaround is not so helpful. This workaround is known. This is an old problem that has no solution even with the newest release of acrobat.

New Participant
December 22, 2011

Here is a workaround for WPF with .NEt 3.5 and Reader X :

add In "Window_Loaded" :

ComponentDispatcher.ThreadFilterMessage += new ThreadMessageEventHandler(ComponentDispatcher_ThreadFilterMessage);

private void ComponentDispatcher_ThreadFilterMessage(ref MSG msg, ref bool handled)

{

    if (msg.message == 0x1450)

        handled = true;

}

Regards,

H.M

New Participant
November 10, 2011

I'm working on a legacy vb6 application that experiences the same issue with Reader 10.1.

Has anyone come up with a work around that can be applied in vb6?

Thanks ahead of time.

JT

lrosenth
Adobe Employee
Adobe Employee
November 10, 2011

VB6 is not supported with Reader X.

[autoresponse info removed by moderator]

November 10, 2011

And Adobe continues to fail and/or refuse to resolve this issue even for those of us using .NET which IS supposedly supported.

-- Edited to remove email sig.

New Participant
July 6, 2011

Hi,

can anybody explain how to do this in this code-snippets I got from the page vb-power.net?

Imports System.ComponentModel

Public Enum PDFLayoutMode
   DontCare             ' Layout laut Dokumentvorgabe
   SinglePage           ' einzelne Seite
   OneColumn            ' fortlaufende Seite
   TwoColumnLeft        ' fortlaufende Doppelseiten , ungerade Seiten links
   TwoColumnRight       ' fortlaufende Doppelseiten , ungerade Seiten rechts
End Enum

Public Enum PDFPageMode
   none                 ' Default-Ansicht
   bookmarks            ' Ansicht Lesezeichen
   thumbs               ' Ansicht Miniaturansicht
End Enum

Public Enum PDFViewMode
   Fit                  ' Komplette Seite passt vollständig ins bereitgestellte Objekt
   FitV                 ' Seitenhöhe (Vertikale) passt vollständig ins Objekt
   FitH                 ' Seitenbreite (Horizontale) passt vollständig ins Objekt
   FitB                 ' Dokumentrahmen ("Bounding Box") passt vollständig ins Objekt
   FitBV                ' Dokumentrahmenhöhe (Vertikale) passt vollständig ins Objekt
   FITBH                ' Dokumentrahmenbreite (Horizontale) passt vollständig ins Objekt
End Enum



Public Class PDFView
   Inherits UserControl

   Private m_PDFHost As PDFHost
   Private m_isInitialized As Boolean = False
   Private m_ShowToolBar As Boolean = True
   Private m_ShowScrollBars As Boolean = True
   Private m_LayoutMode As PDFLayoutMode = PDFLayoutMode.DontCare
   Private m_PageMode As PDFPageMode = PDFPageMode.none
   Private m_ViewMode As PDFViewMode = PDFViewMode.Fit


#Region "Host Helper Class"
   ''' <summary>
   ''' Helper Class
   ''' </summary>
   ''' <remarks>
   ''' Diese private Klasse hostet das Acrobat ActiveX Control,
   ''' so dass es in das UserControl eingefügt werden kann.
   ''' </remarks>
   Private Class PDFHost
      Inherits AxHost

      ''' <summary>
      ''' Initialisiert den Host
      ''' </summary>
      Public Sub New(ByVal sCLSID As String)
         MyBase.New(sCLSID)
      End Sub

      ''' <summary>
      ''' Gibt ein Objekt-Verweis auf das ActiveX Control zurück
      ''' </summary>
      Public ReadOnly Property Viewer() As Object
         Get
            Try
               Return Me.GetOcx
            Catch ex As Exception
               Return Nothing
            End Try
         End Get
      End Property

      ''' <summary>
      ''' Gibt sämtliche von der Componente verwendeten Ressourcen frei.
      ''' </summary>
      Protected Overrides Sub Dispose(ByVal disposing As Boolean)
         If Me.Viewer IsNot Nothing Then
            Me.Viewer.Dipose()
         End If
         MyBase.Dispose(disposing)
      End Sub
   End Class
#End Region


#Region "Initialisierungen"
   ''' <summary>
   ''' Initialisiert das UserControl
   ''' </summary>
   Public Sub New()
      MyBase.New()
      Me.InitializeComponent()
   End Sub

   Protected Overrides Sub Dispose(ByVal disposing As Boolean)
      If m_isInitialized Then
         m_PDFHost.Dispose()
      End If
      MyBase.Dispose(disposing)
   End Sub

   ''' <summary>
   ''' Initialisiert die Komponente.
   ''' </summary>
   ''' <remarks>
   ''' Über Late Binding wird versucht, eine Instanz des Acrobat Readers
   ''' zu erzeugen. Auf dem Zielsystem muss der Reader in der Version 7
   ''' oder höher installiert sein. Ist dies nicht der Fall, wird eine
   ''' Fehlermeldung ausgegeben.
   ''' </remarks>
   Private Sub InitializeComponent()
      Dim t As Type = Type.GetTypeFromProgID("AcroPDF.PDF")
      If t IsNot Nothing Then
         m_PDFHost = New PDFHost(t.GUID.ToString)
         DirectCast((m_PDFHost), ISupportInitialize).BeginInit()
         SuspendLayout()
         m_PDFHost.TabIndex = 0
         m_PDFHost.Visible = True
         m_PDFHost.Name = "PDFHost"
         m_PDFHost.Dock = DockStyle.Fill
         Controls.Add(m_PDFHost)
         DirectCast((m_PDFHost), ISupportInitialize).EndInit()
         ResumeLayout(False)
         PerformLayout()
         m_isInitialized = True
      Else
         m_isInitialized = False
         MessageBox.Show("Der Acrobat Reader Version 7 oder höher konnte nicht initialisiert werden." _
            & vbCrLf & "Bitte installieren Sie den Acrobat Reader in der Version 7 oder höher." _
            , "Überprüfung Acrobat Reader", MessageBoxButtons.OK, MessageBoxIcon.Error)
      End If
   End Sub
#End Region


#Region "Properties"
   ''' <summary>
   ''' Die Eigenschaft liefert True zurück, wenn der Acrobat Reader
   ''' initialisiert wurde, anderenfalls False.
   ''' </summary>
   <Browsable(False)> _
   Public ReadOnly Property isInitialized() As Boolean
      Get
         Return m_isInitialized
      End Get
   End Property

   ''' <summary>
   ''' Legt den Layout Modus für das PDF-Dokument fest, oder liest diese aus.
   ''' </summary>
   <Description("Legt den Layout Modus für das PDF-Dokument fest, oder liest diese aus."), _
   Category("Darstellung"), _
   DefaultValue(GetType(PDFLayoutMode), "DontCare")> _
   Public Property LayoutMode() As PDFLayoutMode
      Get
         Return m_LayoutMode
      End Get
      Set(ByVal value As PDFLayoutMode)
         m_LayoutMode = value
         Try
            m_PDFHost.Viewer.setLayoutMode(m_LayoutMode.ToString)
         Catch ex As Exception
            Throw ex
         End Try
      End Set
   End Property

   ''' <summary>
   ''' Legt den Modus für die Seitendarstellung fest,oder liest diese aus.
   ''' </summary>
   <Description("Legt den Modus für die Seitendarstellung fest,oder liest diese aus."), _
   Category("Darstellung"), _
   DefaultValue(GetType(PDFPageMode), "none")> _
   Public Property PageMode() As PDFPageMode
      Get
         Return m_PageMode
      End Get
      Set(ByVal value As PDFPageMode)
         m_PageMode = value
         Try
            m_PDFHost.Viewer.setPageMode(m_PageMode.ToString)
         Catch ex As Exception
            Throw ex
         End Try
      End Set
   End Property

   ''' <summary>
   ''' Bestimmt, ob die ToolBar angezeigt werden soll.
   ''' </summary>
   <Description("Bestimmt, ob die ToolBar angezeigt werden soll."), _
   Category("Layout"), _
   DefaultValue(True)> _
   Public Property ShowToolBar() As Boolean
      Get
         Return m_ShowToolBar
      End Get
      Set(ByVal value As Boolean)
         m_ShowToolBar = value
         Try
            m_PDFHost.Viewer.setShowToolbar(value)
         Catch ex As Exception
            Throw ex
         End Try
      End Set
   End Property

   ''' <summary>
   ''' Bestimmt, ob die ScrollBars angezeigt werden sollen.
   ''' </summary>
   <Description("Bestimmt, ob die ScrollBars angezeigt werden sollen."), _
   Category("Layout"), _
   DefaultValue(True)> _
   Public Property ShowScrollBars() As Boolean
      Get
         Return m_ShowScrollBars
      End Get
      Set(ByVal value As Boolean)
         m_ShowScrollBars = value
         Try
            m_PDFHost.Viewer.setShowScrollbars(value)
         Catch ex As Exception
            Throw ex
         End Try
      End Set
   End Property

   ''' <summary>
   ''' Legt den Modus für die Seiteneinpassung fest, oder liest diese aus.
   ''' </summary>
   <Description("Legt den Modus für die Seiteneinpassung fest, oder liest diese aus."), _
   Category("Darstellung"), _
   DefaultValue(GetType(PDFViewMode), "Fit")> _
   Public Property ViewMode() As PDFViewMode
      Get
         Return m_ViewMode
      End Get
      Set(ByVal value As PDFViewMode)
         m_ViewMode = value
         Try
            m_PDFHost.Viewer.setView(m_ViewMode.ToString)
         Catch ex As Exception
            Throw ex
         End Try
      End Set
   End Property
#End Region


#Region "Methoden"
   ''' <summary>
   ''' Geht im Undo-Buffer zur vorherigen Ansicht.
   ''' </summary>
   Public Sub GoBackward()
      Try
         m_PDFHost.Viewer.GoBackwardStack()
      Catch ex As Exception
         Throw ex
      End Try
   End Sub

   Public Sub GoForward()
      Try
         m_PDFHost.Viewer.GoForwardStack()
      Catch ex As Exception
         Throw ex
      End Try
   End Sub

   Public Sub GotoPage(ByVal PageNumber As Integer)
      Try
         m_PDFHost.Viewer.setCurrentPage(PageNumber)
      Catch ex As Exception
         Throw ex
      End Try
   End Sub

   Public Sub GotoFirstPage()
      Try
         m_PDFHost.Viewer.GotoFirstPage()
      Catch ex As Exception
         Throw ex
      End Try
   End Sub

   Public Sub GotoLastPage()
      Try
         m_PDFHost.Viewer.GotoLastPage()
      Catch ex As Exception
         Throw ex
      End Try
   End Sub

   Public Sub GotoNextPage()
      Try
         m_PDFHost.Viewer.GotoNextPage()
      Catch ex As Exception
         Throw ex
      End Try
   End Sub

   Public Sub GotoPreviousPage()
      Try
         m_PDFHost.Viewer.GotoPreviousPage()
      Catch ex As Exception
         Throw ex
      End Try
   End Sub

   Public Function LoadFile(ByVal FileName As String) As Boolean
      Try
         Dim b As Boolean = m_PDFHost.Viewer.LoadFile(FileName)
         If b Then
            Me.ShowToolBar = m_ShowToolBar
            Me.ShowScrollBars = m_ShowScrollBars
            Me.LayoutMode = m_LayoutMode
            Me.PageMode = m_PageMode
            Me.ViewMode = m_ViewMode
         End If
         Return b
      Catch ex As Exception
         Throw ex
      End Try
   End Function

   Public Sub PrintWithDialog()
      Try
         m_PDFHost.Viewer.PrintWithDialog()
      Catch ex As Exception
         Throw ex
      End Try
   End Sub

   Public Sub Zoom(ByVal Percent As Single)
      Try
         m_PDFHost.Viewer.setZoom(Percent)
      Catch ex As Exception
         Throw ex
      End Try
   End Sub

#End Region

End Class
lrosenth
Adobe Employee
Adobe Employee
July 6, 2011

Why not download the Acrobat SDK and read the documentation?

July 7, 2011

Irosenth,

I've read the applicable documentation for using the AcroPDF ActiveX control. Am I mistaken that the source code for the ActiveX control is available in the Acrobat SDK, and I can resolve the many issues that it has on my own, distribute it to thousands of users royalty free?

Also, I don't quite understand the reasons for your passive-aggressive comment. Why not just fix the problem in your ActiveX control? It's been almost three major revisions since these issues have been reported.

Known Participant
June 27, 2011

I'm following up to determine if Adobe or anyone else developed a fix for this AccessViolationException fatal condition when pressing the TAB key in Acrobat.

I have confirmed that the fatal bug exists in Acrobat 10.1.0, Microsoft Visual Studio 2010, and Microsoft .NET 4, on Windows Server 2008 R2 all current updates for all products.

Up until now, my applications with  Acrobat Reader in .NET have been Touch Screen oriented, so the users were unlikely to press the TAB key.

This fatal bug is now a show stopper for moving my application to the desktop where there is a TAB key on the keyboard.

Let's please fix this fatal bug in Acrobat Reader or develop a solid work around that permits the TAB key to co-exist with Acrobat Reader and Microsoft .NET Framework.

Arnold

New Participant
April 12, 2011

Hi,

I have the same problem with my VB-Dot.Net-Application. If someone has a workaround or an official hint to solve the Tab-Problem please let me know

April 12, 2011

VMBLaOs wrote:

Hi,

I have the same problem with my VB-Dot.Net-Application. If someone has a workaround or an official hint to solve the Tab-Problem please let me know

With VB .Net it will be not difficult to intercept message 0x1450. See for example the comments to this post

New Participant
April 18, 2011

Can please give my another hint how to do this in VB.Net.

I don't know howto override the WnsProc-Sub and google only helps with C++/C# and not with Visual Basic.

June 10, 2010

Ok, guys,they do not seem to fix the problem after about a year of first finding it. I am using Adove Reader 9.3.2 and the bug is still there.

I found the workaround which works perfectly.

In the window where you've created the Adobe PDF Reader Active X control override the OnPretranslateMessage() method.

Paste the following chunk of code to block the internal Adobe's Application message 0x1450 (5200L). If you do not use MFC or C++, then find a place to override message processing.

BOOL CMyDialog::PreTranslateMessage(MSG* pMsg)

{

  // insert this chunk of code.

  // Replace m_pdfCtrl with the name of your Adobe control.
  if(pMsg->hwnd == m_pdfCtrl.GetSafeHwnd())
  {
    if(pMsg->message == 0x1450)
    {
      return TRUE;
    }
  }

  return CDialog::PreTranslateMessage(pMsg);

}

BTW, I've send the detailed report to Adobe with the steps to replicate, and as expected no reply from them. Good for you, Adobe.

February 17, 2011

Working in Access, I'm getting the same fault as everyone else in this thread.

  • Have disabled tab stops for all controls (including the Reader control) - still occurs.
  • Have the Form_KeyDown event capturing vbKeyTab and setting it to 0 - still occurs.
  • Have used Private Declare Function GetAsyncKeyState Lib "User32" (ByVal vKey As Integer) As Long to intercept the Tab's
    (but can't find a way to consume the Tab out of the keyboard buffer and am assuming that is why the Reader control still reacts to the Tab)

If anyone knows of a way to implement the PreTranslateMessage workaround posted by aucha in VBA, it'd be greatly appreciated.

lrosenth
Adobe Employee
Adobe Employee
February 18, 2011

Hi guys,

I'd like to provide you with an update. Back in June 2010 I have lodged an Adobe product Security vulnerability incident report via the Adobe website. It took them 8 months to come up with a solution. The solution is however is not perfect. You need to copy a Microsoft legacy MFC dll MFC71.dll. There is no way you can download this dll officially from the Microsoft website, as they are apparently dropped support for this version of MFC.

Below is the copy of my conversation with Adobe

From: Adobe PSIRT [mailto:psirt@adobe.com]
Sent: Thursday, February 03, 2011 2:04 PM
To: aucha
Subject: RE: Adobe product security vulnerability feedback form (586)

Hello aucha,

Thank you again for your report of Adobe ID 586.  Our investigation of this issue found the problem to be related to MFC71.dll , which was not installed in the case of AcroView.exe. After manually copying the MFC71.dll to the same folder as Acroview.exe (alternatively, MFC can be statically linked with the program), no crash was observed.  If your investigation proves otherwise, please let us know.

Again, thank you for your continued help and discretion.  Please let us know if you have any questions.

Thank you,

Wendy

Adobe Product Security Incident Response Team

-----Original Message-----

From: Adobe PSIRT

Sent: Wednesday, June 16, 2010 12:03 PM

To: aucha

Cc: Adobe PSIRT

Subject: RE: Adobe product security vulnerability feedback form (586)

Hello aucha,

Thank you for your report.  We have been able to reproduce the issue and are currently working on a fix.  We will be in touch with additional information as available regarding an eventual release schedule.  In the meantime, we appreciate your help in not publicly disclosing this potential issue in order to protect Adobe's customers.  This has been assigned the Adobe tracking number 586.

Thank you again for your help and discretion!  Please let us know if you have any questions.

Thank you,

Wendy

Adobe Product Security Incident Response Team

-----Original Message-----

From: via web form [mailto:PSIRT@adobe.com]

Sent: Thursday, June 10, 2010 12:49 AM

To: Adobe PSIRT

Subject: Adobe product security vulnerability feedback form (586)

Name: aucha

Email: aucha

Phone:

CanAdobeContactUser: Yes

Product: Adobe Reader

ProductOther:

ProductVersion: 9.3.2

VulnerabilityDetail: I am a Senior Software Developer responsible for application design and development at our company. Our team has identified a vulnerability in 'Adobe PDF Reader <1.0>' Active X (IAcroAXDocShim) control residing in AcroPDF.dll. When the control is placed on a dialog form and a pdf file is loaded, then hitting <Tab> key causes the application to crash.

I have researched the Internet and found that this issue has been observed by someone at lease a year ago in version 8, and apparently has not been fixed since.

As far as I know MS Internet Explorer has a workaround for this issue.

Please advise if this will be fixed, or if there is a know workaround for this.

Regards,

aucha

DefaultConfigVulnerable: Yes

ConfigChangesRequired:

VulerabilityResult: DataLossCorruption, DenialServiceApplication

PartiesAffected: ProductOwner, ThirdParty

HowToDuplicate: Create a simple MFC Dialog based application in Visual Studio.

Add new MFC class using VS wizard 'MFC Class from Active X Control'.

Locate 'Adobe PDF Reader <1>' in the list of installed Active X Controls in the system.

Generate a class for the IAcroAXDocShim interface.

Create a pdf control on the default MFC dialog in OnInitDialog() method.

Load a document using LoadFile() method.

Run the program.

Set Focus to the Adobe reader control using mouse click. Tab out of the control by pressing <Tab> key.

The program crashes.

If having troubles creating an MFC project, please load one from codeproject: http://www.codeproject.com/KB/miscctrl/acroview.aspx

ExampleProgram: Yes

WorkaroundsFixes: Yes

WorkaroundsFixesDetail: There is no any crashes in Internet Explorer. Microsoft must have done something. Please check with them please.

At the same time they implemented additional interfaces (such as IAcroIEHelperShimObj, DWebBrowserEvents2, etc). There is no information about these interfaces in the SDK documentation, so I guess they are designed specifically for MS

VulnerabilityBeingExploited: Yes


I don't understand this, since Acrobat doesn't use MFC....

Known Participant
April 16, 2010

Just a follow up.  my project was deployed in January and its Acrobat is updated to the current version of Acrobat at this time.  However, the application is a Touch Screen application, so I can't tell if the problem is resolved - since there is no keyboard attached.  It is my hope that the problem is fixed so my next project development will not have the same issue.

Arnold